~ubuntu-branches/ubuntu/saucy/curl/saucy-201307251546

« back to all changes in this revision

Viewing changes to tests/unit/unit1302.c

  • Committer: Bazaar Package Importer
  • Author(s): Ramakrishnan Muthukrishnan
  • Date: 2011-02-28 19:35:36 UTC
  • mto: (3.6.1 experimental) (1.3.1)
  • mto: This revision was merged to the branch mainline in revision 47.
  • Revision ID: james.westby@ubuntu.com-20110228193536-p3a9jawxxofcsz7o
Tags: upstream-7.21.4
ImportĀ upstreamĀ versionĀ 7.21.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <stdlib.h>
 
2
#include "curl_config.h"
 
3
#include "setup.h"
 
4
 
 
5
#include "urldata.h"
 
6
#include "url.h" /* for Curl_safefree */
 
7
#include "curl_base64.h"
 
8
#include "curlcheck.h"
 
9
#include "memdebug.h" /* LAST include file */
 
10
 
 
11
static struct SessionHandle *data;
 
12
 
 
13
static CURLcode unit_setup( void )
 
14
{
 
15
  data = curl_easy_init();
 
16
  if (!data)
 
17
    return CURLE_OUT_OF_MEMORY;
 
18
  return CURLE_OK;
 
19
}
 
20
 
 
21
static void unit_stop( void )
 
22
{
 
23
  curl_easy_cleanup(data);
 
24
}
 
25
 
 
26
UNITTEST_START
 
27
 
 
28
char *output;
 
29
unsigned char *decoded;
 
30
size_t rc;
 
31
 
 
32
rc = Curl_base64_encode(data, "i", 1, &output);
 
33
fail_unless( rc == 4 , "return code should be 4" );
 
34
verify_memory( output, "aQ==", 4);
 
35
Curl_safefree(output);
 
36
 
 
37
rc = Curl_base64_encode(data, "ii", 2, &output);
 
38
fail_unless( rc == 4 , "return code should be 4" );
 
39
verify_memory( output, "aWk=", 4);
 
40
Curl_safefree(output);
 
41
 
 
42
rc = Curl_base64_encode(data, "iii", 3, &output);
 
43
fail_unless( rc == 4 , "return code should be 4" );
 
44
verify_memory( output, "aWlp", 4);
 
45
Curl_safefree(output);
 
46
 
 
47
rc = Curl_base64_encode(data, "iiii", 4, &output);
 
48
fail_unless( rc == 8 , "return code should be 8" );
 
49
verify_memory( output, "aWlpaQ==", 8);
 
50
Curl_safefree(output);
 
51
 
 
52
/* 0 length makes it do strlen() */
 
53
rc = Curl_base64_encode(data, "iiii", 0, &output);
 
54
fail_unless( rc == 8 , "return code should be 8" );
 
55
verify_memory( output, "aWlpaQ==", 8);
 
56
Curl_safefree(output);
 
57
 
 
58
rc = Curl_base64_decode("aWlpaQ==", &decoded);
 
59
fail_unless(rc == 4, "return code should be 4");
 
60
verify_memory(decoded, "iiii", 4);
 
61
Curl_safefree(decoded);
 
62
 
 
63
rc = Curl_base64_decode("aWlp", &decoded);
 
64
fail_unless(rc == 3, "return code should be 3");
 
65
verify_memory(decoded, "iii", 3);
 
66
Curl_safefree(decoded);
 
67
 
 
68
rc = Curl_base64_decode("aWk=", &decoded);
 
69
fail_unless(rc == 2, "return code should be 2");
 
70
verify_memory(decoded, "ii", 2);
 
71
Curl_safefree(decoded);
 
72
 
 
73
rc = Curl_base64_decode("aQ==", &decoded);
 
74
fail_unless(rc == 1, "return code should be 1");
 
75
verify_memory(decoded, "i", 2);
 
76
Curl_safefree(decoded);
 
77
 
 
78
/* this is an illegal input */
 
79
decoded = NULL;
 
80
rc = Curl_base64_decode("aQ", &decoded);
 
81
fail_unless(rc == 0, "return code should be 0");
 
82
fail_if(decoded, "returned pointer should be NULL");
 
83
 
 
84
/* this is garbage input that libcurl decodes as far as possible */
 
85
rc = Curl_base64_decode("a\x1f==", &decoded);
 
86
fail_unless(rc == 1, "return code should be 1");
 
87
Curl_safefree(decoded);
 
88
 
 
89
UNITTEST_STOP