|
79 | 79 | Ethernet-BP0 up up Ethernet-BP0 ASIC1:Eth0-ASIC1
|
80 | 80 | Ethernet-BP4 up up Ethernet-BP4 ASIC1:Eth1-ASIC1
|
81 | 81 | """
|
| 82 | + |
| 83 | +intf_invalid_asic_error="""ValueError: Unknown Namespace asic99""" |
| 84 | + |
82 | 85 | class TestInterfacesMultiAsic(object):
|
83 | 86 | @classmethod
|
84 | 87 | def setup_class(cls):
|
85 | 88 | print("SETUP")
|
86 | 89 | os.environ["PATH"] += os.pathsep + scripts_path
|
87 |
| - os.environ["UTILITIES_UNIT_TESTING"] = "3" |
| 90 | + os.environ["UTILITIES_UNIT_TESTING"] = "2" |
| 91 | + os.environ["UTILITIES_UNIT_TESTING_TOPOLOGY"] = "multi_asic" |
88 | 92 |
|
89 | 93 | def setUp(self):
|
90 | 94 | self.runner = CliRunner()
|
91 | 95 |
|
| 96 | + def get_result_and_return_code(self, cmd): |
| 97 | + return_code = 0 |
| 98 | + try: |
| 99 | + output = subprocess.check_output( |
| 100 | + cmd, stderr=subprocess.STDOUT, shell=True) |
| 101 | + except subprocess.CalledProcessError as e: |
| 102 | + return_code = e.returncode |
| 103 | + #store only the error, no need for the traceback |
| 104 | + output = e.output.strip().split("\n")[-1] |
| 105 | + |
| 106 | + return(return_code, output) |
92 | 107 |
|
93 | 108 | def test_multi_asic_interface_status_all(self):
|
94 |
| - result = subprocess.check_output( |
95 |
| - 'intfutil -c status -d all', stderr=subprocess.STDOUT, shell=True) |
96 |
| - print(result) |
| 109 | + return_code, result = self.get_result_and_return_code( 'intfutil -c status -d all') |
| 110 | + print("return_code: {}".format(return_code)) |
| 111 | + print("result = {}".format(result)) |
| 112 | + assert return_code == 0 |
97 | 113 | assert result == intf_status_all
|
98 | 114 |
|
99 | 115 | def test_multi_asic_interface_status(self):
|
100 |
| - result = subprocess.check_output( |
101 |
| - 'intfutil -c status', stderr=subprocess.STDOUT, shell=True) |
102 |
| - print(result) |
| 116 | + return_code, result = self.get_result_and_return_code('intfutil -c status') |
| 117 | + print("return_code: {}".format(return_code)) |
| 118 | + print("result = {}".format(result)) |
| 119 | + assert return_code == 0 |
103 | 120 | assert result == intf_status
|
104 | 121 |
|
105 | 122 | def test_multi_asic_interface_status_asic0_all(self):
|
106 |
| - result = subprocess.check_output( |
107 |
| - 'intfutil -c status -n asic0 -d all', stderr=subprocess.STDOUT, shell=True) |
108 |
| - print(result) |
| 123 | + return_code, result = self.get_result_and_return_code('intfutil -c status -n asic0 -d all') |
| 124 | + print("return_code: {}".format(return_code)) |
| 125 | + print("result = {}".format(result)) |
| 126 | + assert return_code == 0 |
109 | 127 | assert result == intf_status_asic0_all
|
110 | 128 |
|
111 | 129 | def test_multi_asic_interface_status_asic0(self):
|
112 |
| - result = subprocess.check_output( |
113 |
| - 'intfutil -c status', stderr=subprocess.STDOUT, shell=True) |
114 |
| - print(result) |
| 130 | + return_code, result = self.get_result_and_return_code('intfutil -c status -n asic0') |
| 131 | + print("return_code: {}".format(return_code)) |
| 132 | + print("result = {}".format(result)) |
| 133 | + assert return_code == 0 |
115 | 134 | assert result == intf_status_asic0
|
116 | 135 |
|
117 | 136 | def test_multi_asic_interface_desc(self):
|
118 |
| - result = subprocess.check_output( |
119 |
| - 'intfutil -c description', stderr=subprocess.STDOUT, shell=True) |
120 |
| - print(result) |
| 137 | + return_code, result = self.get_result_and_return_code('intfutil -c description') |
| 138 | + print("return_code: {}".format(return_code)) |
| 139 | + print("result = {}".format(result)) |
| 140 | + assert return_code == 0 |
121 | 141 | assert result == intf_description
|
122 | 142 |
|
123 | 143 | def test_multi_asic_interface_desc_all(self):
|
124 |
| - result = subprocess.check_output( |
125 |
| - 'intfutil -c description -d all', stderr=subprocess.STDOUT, shell=True) |
126 |
| - print(result) |
| 144 | + return_code, result = self.get_result_and_return_code( 'intfutil -c description -d all') |
| 145 | + print("return_code: {}".format(return_code)) |
| 146 | + print("result = {}".format(result)) |
| 147 | + assert return_code == 0 |
127 | 148 | assert result == intf_description_all
|
128 | 149 |
|
129 | 150 | def test_multi_asic_interface_asic0(self):
|
130 |
| - result = subprocess.check_output( |
131 |
| - 'intfutil -c description -n asic0', stderr=subprocess.STDOUT, shell=True) |
132 |
| - print(result) |
| 151 | + return_code, result = self.get_result_and_return_code( 'intfutil -c description -n asic0') |
| 152 | + print("return_code: {}".format(return_code)) |
| 153 | + print("result = {}".format(result)) |
| 154 | + assert return_code == 0 |
133 | 155 | assert result == intf_description_asic0
|
134 | 156 |
|
135 | 157 | def test_multi_asic_interface_desc_asic0_all(self):
|
136 |
| - result = subprocess.check_output( |
137 |
| - 'intfutil -c description -n asic0 -d all', stderr=subprocess.STDOUT, shell=True) |
138 |
| - print(result) |
| 158 | + return_code, result = self.get_result_and_return_code('intfutil -c description -n asic0 -d all') |
| 159 | + print("return_code: {}".format(return_code)) |
| 160 | + print("result = {}".format(result)) |
| 161 | + assert return_code == 0 |
139 | 162 | assert result == intf_description_asic0_all
|
140 | 163 |
|
141 |
| - |
| 164 | + def test_invalid_asic_name(self): |
| 165 | + return_code, result = self.get_result_and_return_code('intfutil -c description -n asic99 -d all') |
| 166 | + print("return_code: {}".format(return_code)) |
| 167 | + print("result = {}".format(result)) |
| 168 | + assert return_code == 1 |
| 169 | + assert result == intf_invalid_asic_error |
| 170 | + |
| 171 | + def test_invalid_asic_name(self): |
| 172 | + return_code, result = self.get_result_and_return_code('intfutil -c status -n asic99') |
| 173 | + print("return_code: {}".format(return_code)) |
| 174 | + print("result = {}".format(result)) |
| 175 | + assert return_code == 1 |
| 176 | + assert result == intf_invalid_asic_error |
| 177 | + |
142 | 178 | def teardown_class(cls):
|
143 | 179 | print("TEARDOWN")
|
144 | 180 | os.environ["PATH"] = os.pathsep.join(
|
|
0 commit comments