def test_hex_to_hexstr(self): """ Given: A set of bytes representing a string with several lines. When: Calling hex_to_hexstr Then: Hex of several-line string is output first, then repr format. """ given = "abc\n123\r\nA\n" expected = "61 62 63 0a 31 32 33 0d 0a 41 0a b'abc\\n123\\r\\nA\\n'" self.assertEqual(expected, fuzz_logger_text.hex_to_hexstr(given))
def test_hex_to_hexstr_all_bytes(self): """ Given: List of each byte from 0 to 255. When: Calling hex_to_hexstr on each. Then: For each byte, its hex value is output, followed by its repr value. """ # Use a static map so that future changes are detected by the UT, # to avoid Python 3 vs Python 2 errors, etc. expected_results = { 0: "b'\\x00'", 1: "b'\\x01'", 2: "b'\\x02'", 3: "b'\\x03'", 4: "b'\\x04'", 5: "b'\\x05'", 6: "b'\\x06'", 7: "b'\\x07'", 8: "b'\\x08'", 9: "b'\\t'", 10: "b'\\n'", 11: "b'\\x0b'", 12: "b'\\x0c'", 13: "b'\\r'", 14: "b'\\x0e'", 15: "b'\\x0f'", 16: "b'\\x10'", 17: "b'\\x11'", 18: "b'\\x12'", 19: "b'\\x13'", 20: "b'\\x14'", 21: "b'\\x15'", 22: "b'\\x16'", 23: "b'\\x17'", 24: "b'\\x18'", 25: "b'\\x19'", 26: "b'\\x1a'", 27: "b'\\x1b'", 28: "b'\\x1c'", 29: "b'\\x1d'", 30: "b'\\x1e'", 31: "b'\\x1f'", 32: "b' '", 33: "b'!'", 34: 'b\'"\'', 35: "b'#'", 36: "b'$'", 37: "b'%'", 38: "b'&'", 39: 'b"\'"', 40: "b'('", 41: "b')'", 42: "b'*'", 43: "b'+'", 44: "b','", 45: "b'-'", 46: "b'.'", 47: "b'/'", 48: "b'0'", 49: "b'1'", 50: "b'2'", 51: "b'3'", 52: "b'4'", 53: "b'5'", 54: "b'6'", 55: "b'7'", 56: "b'8'", 57: "b'9'", 58: "b':'", 59: "b';'", 60: "b'<'", 61: "b'='", 62: "b'>'", 63: "b'?'", 64: "b'@'", 65: "b'A'", 66: "b'B'", 67: "b'C'", 68: "b'D'", 69: "b'E'", 70: "b'F'", 71: "b'G'", 72: "b'H'", 73: "b'I'", 74: "b'J'", 75: "b'K'", 76: "b'L'", 77: "b'M'", 78: "b'N'", 79: "b'O'", 80: "b'P'", 81: "b'Q'", 82: "b'R'", 83: "b'S'", 84: "b'T'", 85: "b'U'", 86: "b'V'", 87: "b'W'", 88: "b'X'", 89: "b'Y'", 90: "b'Z'", 91: "b'['", 92: "b'\\\\'", 93: "b']'", 94: "b'^'", 95: "b'_'", 96: "b'`'", 97: "b'a'", 98: "b'b'", 99: "b'c'", 100: "b'd'", 101: "b'e'", 102: "b'f'", 103: "b'g'", 104: "b'h'", 105: "b'i'", 106: "b'j'", 107: "b'k'", 108: "b'l'", 109: "b'm'", 110: "b'n'", 111: "b'o'", 112: "b'p'", 113: "b'q'", 114: "b'r'", 115: "b's'", 116: "b't'", 117: "b'u'", 118: "b'v'", 119: "b'w'", 120: "b'x'", 121: "b'y'", 122: "b'z'", 123: "b'{'", 124: "b'|'", 125: "b'}'", 126: "b'~'", 127: "b'\\x7f'", 128: "b'\\x80'", 129: "b'\\x81'", 130: "b'\\x82'", 131: "b'\\x83'", 132: "b'\\x84'", 133: "b'\\x85'", 134: "b'\\x86'", 135: "b'\\x87'", 136: "b'\\x88'", 137: "b'\\x89'", 138: "b'\\x8a'", 139: "b'\\x8b'", 140: "b'\\x8c'", 141: "b'\\x8d'", 142: "b'\\x8e'", 143: "b'\\x8f'", 144: "b'\\x90'", 145: "b'\\x91'", 146: "b'\\x92'", 147: "b'\\x93'", 148: "b'\\x94'", 149: "b'\\x95'", 150: "b'\\x96'", 151: "b'\\x97'", 152: "b'\\x98'", 153: "b'\\x99'", 154: "b'\\x9a'", 155: "b'\\x9b'", 156: "b'\\x9c'", 157: "b'\\x9d'", 158: "b'\\x9e'", 159: "b'\\x9f'", 160: "b'\\xa0'", 161: "b'\\xa1'", 162: "b'\\xa2'", 163: "b'\\xa3'", 164: "b'\\xa4'", 165: "b'\\xa5'", 166: "b'\\xa6'", 167: "b'\\xa7'", 168: "b'\\xa8'", 169: "b'\\xa9'", 170: "b'\\xaa'", 171: "b'\\xab'", 172: "b'\\xac'", 173: "b'\\xad'", 174: "b'\\xae'", 175: "b'\\xaf'", 176: "b'\\xb0'", 177: "b'\\xb1'", 178: "b'\\xb2'", 179: "b'\\xb3'", 180: "b'\\xb4'", 181: "b'\\xb5'", 182: "b'\\xb6'", 183: "b'\\xb7'", 184: "b'\\xb8'", 185: "b'\\xb9'", 186: "b'\\xba'", 187: "b'\\xbb'", 188: "b'\\xbc'", 189: "b'\\xbd'", 190: "b'\\xbe'", 191: "b'\\xbf'", 192: "b'\\xc0'", 193: "b'\\xc1'", 194: "b'\\xc2'", 195: "b'\\xc3'", 196: "b'\\xc4'", 197: "b'\\xc5'", 198: "b'\\xc6'", 199: "b'\\xc7'", 200: "b'\\xc8'", 201: "b'\\xc9'", 202: "b'\\xca'", 203: "b'\\xcb'", 204: "b'\\xcc'", 205: "b'\\xcd'", 206: "b'\\xce'", 207: "b'\\xcf'", 208: "b'\\xd0'", 209: "b'\\xd1'", 210: "b'\\xd2'", 211: "b'\\xd3'", 212: "b'\\xd4'", 213: "b'\\xd5'", 214: "b'\\xd6'", 215: "b'\\xd7'", 216: "b'\\xd8'", 217: "b'\\xd9'", 218: "b'\\xda'", 219: "b'\\xdb'", 220: "b'\\xdc'", 221: "b'\\xdd'", 222: "b'\\xde'", 223: "b'\\xdf'", 224: "b'\\xe0'", 225: "b'\\xe1'", 226: "b'\\xe2'", 227: "b'\\xe3'", 228: "b'\\xe4'", 229: "b'\\xe5'", 230: "b'\\xe6'", 231: "b'\\xe7'", 232: "b'\\xe8'", 233: "b'\\xe9'", 234: "b'\\xea'", 235: "b'\\xeb'", 236: "b'\\xec'", 237: "b'\\xed'", 238: "b'\\xee'", 239: "b'\\xef'", 240: "b'\\xf0'", 241: "b'\\xf1'", 242: "b'\\xf2'", 243: "b'\\xf3'", 244: "b'\\xf4'", 245: "b'\\xf5'", 246: "b'\\xf6'", 247: "b'\\xf7'", 248: "b'\\xf8'", 249: "b'\\xf9'", 250: "b'\\xfa'", 251: "b'\\xfb'", 252: "b'\\xfc'", 253: "b'\\xfd'", 254: "b'\\xfe'", 255: "b'\\xff'", } for c in range(0, 255): self.assertEqual("{:02x} {}".format(c, expected_results[c]), fuzz_logger_text.hex_to_hexstr(chr(c)))