| 47 | } |
| 48 | |
| 49 | BOOST_AUTO_TEST_CASE(test_Base64_Encode_Decode) { |
| 50 | int len; |
| 51 | uint8_t testInput[3]; |
| 52 | uint8_t testOutput[4]; |
| 53 | |
| 54 | // Test all possible encoding / decoding cases given the |
| 55 | // three byte limit for base64_encode. |
| 56 | |
| 57 | for (int i = 0xFFFFFF; i >= 0; i--) { |
| 58 | |
| 59 | // fill testInput based on i |
| 60 | setupTestData(i, testInput, len); |
| 61 | |
| 62 | // encode the test data, then decode it again |
| 63 | base64_encode(testInput, len, testOutput); |
| 64 | |
| 65 | // verify each byte has a valid Base64 value (alphanumeric or either + or /) |
| 66 | checkEncoding(testOutput, len); |
| 67 | |
| 68 | // decode output and check that it matches input |
| 69 | base64_decode(testOutput, len + 1); |
| 70 | BOOST_ASSERT(0 == memcmp(testInput, testOutput, len)); |
| 71 | } |
| 72 | } |
| 73 | |
| 74 | BOOST_AUTO_TEST_SUITE_END() |
nothing calls this directly
no test coverage detected