| 34 | using namespace andrivet::advobfuscator; |
| 35 | |
| 36 | void test_strings_obfuscation() { |
| 37 | auto s0 = "abc"_obf; |
| 38 | |
| 39 | assert( |
| 40 | s0.raw()[0] != 'a' || |
| 41 | s0.raw()[1] != 'b' || |
| 42 | s0.raw()[2] != 'c' || |
| 43 | s0.raw()[3] != 0 |
| 44 | ); |
| 45 | assert(s0[0] == 'a'); |
| 46 | assert(s0[1] == 'b'); |
| 47 | assert(s0[2] == 'c'); |
| 48 | assert(s0[3] == 0); |
| 49 | |
| 50 | auto s1 = "ABCDEFGHIJKLMNOP"_obf; |
| 51 | assert( |
| 52 | s1.raw()[0] != 'A' || |
| 53 | s1.raw()[1] != 'B' || |
| 54 | s1.raw()[2] != 'C' || |
| 55 | s1.raw()[3] != 'D' || |
| 56 | s1.raw()[4] != 'E' || |
| 57 | s1.raw()[5] != 'F' || |
| 58 | s1.raw()[6] != 'G' || |
| 59 | s1.raw()[7] != 'H' || |
| 60 | s1.raw()[8] != 'I' || |
| 61 | s1.raw()[9] != 'J' || |
| 62 | s1.raw()[10] != 'K' || |
| 63 | s1.raw()[11] != 'L' || |
| 64 | s1.raw()[12] != 'M' || |
| 65 | s1.raw()[13] != 'N' || |
| 66 | s1.raw()[14] != 'O' || |
| 67 | s1.raw()[15] != 'P' || |
| 68 | s1.raw()[16] != 0 |
| 69 | ); |
| 70 | assert(s1[0] == 'A'); |
| 71 | assert(s1[1] == 'B'); |
| 72 | assert(s1[2] == 'C'); |
| 73 | assert(s1[3] == 'D'); |
| 74 | assert(s1[4] == 'E'); |
| 75 | assert(s1[5] == 'F'); |
| 76 | assert(s1[6] == 'G'); |
| 77 | assert(s1[7] == 'H'); |
| 78 | assert(s1[8] == 'I'); |
| 79 | assert(s1[9] == 'J'); |
| 80 | assert(s1[10] == 'K'); |
| 81 | assert(s1[11] == 'L'); |
| 82 | assert(s1[12] == 'M'); |
| 83 | assert(s1[13] == 'N'); |
| 84 | assert(s1[14] == 'O'); |
| 85 | assert(s1[15] == 'P'); |
| 86 | assert(s1[16] == 0); |
| 87 | |
| 88 | auto s2{"0123456789"_obf}; |
| 89 | assert( |
| 90 | s2.raw()[0] != '0' || |
| 91 | s2.raw()[1] != '1' || |
| 92 | s2.raw()[2] != '2' || |
| 93 | s2.raw()[3] != '3' || |
no test coverage detected