check_base64.c 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <stdlib.h> // EXIT_SUCCESS
  2. #include "ua_base64.h"
  3. #include "check.h"
  4. START_TEST(base64_test_basic)
  5. {
  6. //this is base64'd ASCII string "open62541"
  7. UA_String encodedString = {12, (UA_Byte*)"b3BlbjYyNTQx"};
  8. //assure that we allocate at least 9 bytes
  9. ck_assert_int_ge(UA_base64_getDecodedSizeUB(&encodedString), 9);
  10. UA_Byte* decodedData = (UA_Byte*)malloc(UA_base64_getDecodedSizeUB(&encodedString));
  11. UA_base64_decode(&encodedString, decodedData);
  12. //check the string
  13. ck_assert_int_eq(decodedData[0], 'o');
  14. ck_assert_int_eq(decodedData[1], 'p');
  15. ck_assert_int_eq(decodedData[2], 'e');
  16. ck_assert_int_eq(decodedData[3], 'n');
  17. ck_assert_int_eq(decodedData[4], '6');
  18. ck_assert_int_eq(decodedData[5], '2');
  19. ck_assert_int_eq(decodedData[6], '5');
  20. ck_assert_int_eq(decodedData[7], '4');
  21. ck_assert_int_eq(decodedData[8], '1');
  22. }
  23. END_TEST
  24. Suite*base64_testSuite(void)
  25. {
  26. Suite *s = suite_create("base64_test");
  27. TCase *tc_core = tcase_create("Core");
  28. tcase_add_test(tc_core, base64_test_basic);
  29. suite_add_tcase(s,tc_core);
  30. return s;
  31. }
  32. int main (void)
  33. {
  34. int number_failed = 0;
  35. Suite* s = base64_testSuite();
  36. SRunner* sr = srunner_create(s);
  37. srunner_run_all(sr,CK_NORMAL);
  38. number_failed += srunner_ntests_failed(sr);
  39. srunner_free(sr);
  40. return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
  41. }