2015-03-26 2 views
0

В моем тесте я установил EXPECT_EQ() на символ против некоторых символов, таких как «a», «b» и т. Д. ... пока что так хорошо.Google Test: как EXPECT_EQ непечатаемые значения ASCII

Теперь я должен протестировать против непечатаемого символа ASCII (0xFE). Мой персонаж определяется как «char», поэтому прямой тест против буквального 0xFE будет терпеть неудачу каждый раз!

char a; 
a = 0xFE; 
EXPECT_EQ(a, 0xFE); <-- fail!!! 
+2

Пробовали ли вы 'неподписанные символ A;'? –

+0

Что такое выход? 0xfe - 254, что не соответствует char –

+0

Мне нужно придерживаться типа char, а не unsigned char –

ответ

1

Вы назначаете от 254 до char a. Как вы знаете, char достаточно широка, чтобы удерживать без усечения, но он превышает положительный диапазон char [0,127]. Он отрицательный, с интегральным значением -2. Следовательно, он полностью равен 254 и EXPECT_EQ не работает.

Таким образом, в этом EXPECT_EQ, вы должны настаивать на сравнении с беззнаковым интегрального значения, которое находится в a:

char a; 
a = 0xFE; 
EXPECT_EQ((unsigned char)a, 0xFE); 
Смежные вопросы