LCOV - code coverage report
Current view: top level - tests - test_coders.c (source / functions) Hit Total Coverage
Test: oc-runner-0.0.51.5.29c69 Code Coverage Lines: 37 37 100.0 %
Date: 2018-10-15 12:44:38 Functions: 4 4 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //
       2             : //  test_coders.c
       3             : //  oc-runner
       4             : //
       5             : //  Created by Danny Goossen on 16/9/18.
       6             : //  Copyright (c) 2018 Danny Goossen. All rights reserved.
       7             : //
       8             : 
       9             : //LCOV_EXCL_START
      10             : #include <check.h>
      11             : //LCOV_EXCL_STOP
      12             : 
      13             : #include "../src/b64.h"
      14             : #include "../src/openssl.h"
      15             : 
      16             : struct test_data_b64_t
      17             : {
      18             :         char * in;
      19             :         int len;
      20             :         char * out;
      21             : } ;
      22             : 
      23             : static const struct test_data_b64_t testlist_b64[3] = {
      24             :         { NULL,0,""},
      25             :         { "",0,""},
      26             :         { "a*_/+?-%^&()!@#=[|/?.<,.09zZ",28,"YSpfLys/LSVeJigpIUAjPVt8Lz8uPCwuMDl6Wg=="}
      27             : };
      28             : 
      29           3 : START_TEST(check_b64)
      30             : {
      31           3 :         char * result=NULL;
      32           3 :         size_t len_out=0;
      33           3 :         base64_encode((uint8_t *)testlist_b64[_i].in, testlist_b64[_i].len, &result, &len_out, NULL);
      34           3 :         ck_assert_str_eq(result, testlist_b64[_i].out);
      35           3 :         unsigned char * dec=NULL;
      36           3 :         size_t dec_len=0;
      37           3 :         base64_decode(result, len_out, &dec, &dec_len, NULL);
      38           5 :         if (testlist_b64[_i].in ==NULL || testlist_b64[_i].len ==0)
      39           2 :                 ck_assert_int_eq(dec_len, 0);
      40             :         else
      41           1 :                 ck_assert_str_eq( testlist_b64[_i].in,(char *)dec);
      42           3 :         if (dec) free(dec);
      43           3 :         if(result) free(result);
      44             : }
      45           3 : END_TEST
      46             : 
      47             : 
      48             : struct test_data_b64_v_t
      49             : {
      50             :         char * prefix;
      51             :         char * format;
      52             :         char * in;
      53             :         char * out;
      54             : } ;
      55             : 
      56             : static const struct test_data_b64_v_t testlist_b64_v[4] = {
      57             :         { NULL,"%s","",""},
      58             :         { "",NULL,NULL,NULL},
      59             :         { NULL,"%s","a*_/+?-%^&()!@#=[|/?.<,.09zZ","YSpfLys/LSVeJigpIUAjPVt8Lz8uPCwuMDl6Wg=="},
      60             :         { "pref : ","%s","a*_/+?-%^&()!@#=[|/?.<,.09zZ","pref : YSpfLys/LSVeJigpIUAjPVt8Lz8uPCwuMDl6Wg=="}
      61             : };
      62             : 
      63           4 : START_TEST(check_b64_v)
      64             : {
      65           4 :         char * result=Base64Encode_v(testlist_b64_v[_i].prefix, testlist_b64_v[_i].format,testlist_b64_v[_i].in);
      66             :         
      67           4 :         if (result!=NULL)
      68           3 :                 ck_assert_str_eq(result, testlist_b64_v[_i].out);
      69             :         else
      70           1 :                 ck_assert_ptr_null(testlist_b64_v[_i].out);
      71             :         
      72           4 :         if (result) free(result);
      73             :         
      74             : }
      75           4 : END_TEST
      76             : 
      77             : 
      78           8 : Suite * coders_suite(void)
      79             : {
      80             :         Suite *s;
      81             :         TCase *tc_core;
      82             :         //TCase *tc_progress;
      83           8 :         s = suite_create("test_error");
      84             :         /* Core test case */
      85           8 :         tc_core = tcase_create("Core");
      86             :         //tcase_add_checked_fixture(tc_core, setup, teardown);
      87             : 
      88           8 :         tcase_add_loop_test (tc_core,check_b64,0,3);
      89           8 :         tcase_add_loop_test (tc_core,check_b64_v,0,4);
      90           8 :         tcase_add_unchecked_fixture(tc_core, NULL, NULL);
      91           8 :         tcase_set_timeout(tc_core,15);
      92           8 :         suite_add_tcase(s, tc_core);
      93           8 :         return s;
      94             : }
      95             : 
      96             : 
      97           8 : int main(void)
      98             : {
      99             :         int number_failed;
     100             :         Suite *s;
     101             :         SRunner *sr;
     102             :         
     103           8 :         s = coders_suite();
     104           8 :         sr = srunner_create(s);
     105           8 :         srunner_run_all(sr, CK_NORMAL);
     106           1 :         number_failed = srunner_ntests_failed(sr);
     107           1 :         srunner_free(sr);
     108           1 :         return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
     109             : }
     110             : 

Generated by: LCOV version 1.13