root/lang/c/AutoUpdater/Test.cpp @ 23921

Revision 23921, 4.4 kB (checked in by saturday06, 5 years ago)

leak

Line 
1
2
3#include "AutoUpdater.h"
4
5#include <cstdio>
6#include <cstdlib>
7#include <cstring>
8#include <cassert>
9#include <ctime>
10#include <string>
11
12#define CURRENT_VERSION 200
13#define SOURCE_URL "http://www.google.co.jp"
14
15char* get_random_data(size_t bytes) {
16    using namespace std;
17    size_t i = 0;
18    char* data = (char*)malloc(bytes);
19    if (!data) {
20        assert(data);
21        return NULL;
22    }
23    srand(time(NULL));
24    for (i = 0; i < bytes; i++) {
25        data[i] = (char)((255.0 * (double)rand() / (double)RAND_MAX) - 128);
26    }
27    return data;
28}
29
30
31void buffer_test() {
32    using namespace std;
33    assert(AU_BufferCreate(NULL));
34    {
35        AU_Buffer b;
36        AU_Buffer* buffer;
37        const char data[] = {'t','e','s','t','d','a','t','a'};
38        const char data2[] = {'t','e','s','t','d','a','t','a','t','e','s','t','d','a','t','a','t','e','s','t','d','a','t','a'};
39
40        memset(&b, 0, sizeof(b));
41        assert(AU_BufferCreate(&buffer) == 0);
42        assert(AU_BufferRelease(buffer) == 0);
43        assert(AU_BufferCreate(&buffer) == 0);
44        assert(AU_BufferAppend(buffer, data, sizeof(data)) == 0);
45        assert(memcmp(data, buffer->begin, sizeof(data)) == 0);
46        assert(AU_BufferAppend(buffer, data, sizeof(data)) == 0);
47        assert(AU_BufferAppend(buffer, NULL, sizeof(data)));
48        assert(AU_BufferAppend(&b, data, sizeof(data)));
49        assert(AU_BufferAppend(buffer, data, sizeof(data)) == 0);
50        assert(memcmp(data2, buffer->begin, sizeof(data2)) == 0);
51        assert(AU_BufferAppend(&b, data, 0));
52        assert(AU_BufferRelease(&b));
53        assert(AU_BufferRelease(buffer) == 0);
54    }
55    {
56        AU_Buffer* buffer;
57        {
58            std::string test;
59            int i = 0;
60            assert(AU_BufferCreate(&buffer) == 0);
61
62            for (i = 1; i < 50; i++) {
63                char* data = get_random_data(50 * i);
64                test.append(data, 50 * i);
65                assert(AU_BufferAppend(buffer, data, 50 * i) == 0);
66                assert(memcmp(test.data(), buffer->begin, test.length()) == 0);
67                free(data);
68            }
69            assert(AU_BufferRelease(buffer) == 0);
70        }
71
72        {
73            std::string test;
74            int i = 0;
75            assert(AU_BufferCreate(&buffer) == 0);
76
77            for (i = 1; i < 10; i++) {
78                char* data = get_random_data(5000 * i);
79                test.append(data, 5000 * i);
80                assert(AU_BufferAppend(buffer, data, 5000 * i) == 0);
81                assert(memcmp(test.data(), buffer->begin, test.length()) == 0);
82                free(data);
83            }
84            assert(AU_BufferRelease(buffer) == 0);
85        }
86    }
87}
88
89int main() {
90    using namespace std;
91    assert(AU_CreateSource(NULL, CURRENT_VERSION, SOURCE_URL) == AU_ERROR_INVALID_SOURCE);
92
93    {
94        AU_Source* source;
95        assert(AU_CreateSource(&source, CURRENT_VERSION, SOURCE_URL) == AU_OK);
96        assert(AU_ReleaseSource(source) == AU_OK);
97    }
98
99    {
100        AU_Source* source;
101        assert(AU_CreateSource(&source, CURRENT_VERSION, "http://www.google.co.jp:12345/foo") == AU_OK);
102        assert(AU_ReleaseSource(source) == AU_OK);
103    }
104
105    {
106        AU_Source s;
107        memset(&s, 0, sizeof(s));
108        assert(AU_GetUpdateInformation(&s) == AU_ERROR_INVALID_SOURCE);
109        assert(AU_ReleaseSource(&s) == AU_ERROR_INVALID_SOURCE);       
110    }
111
112    //{
113    //    AU_Source* source;
114    //    assert(AU_CreateSource(&source, CURRENT_VERSION, "http://www.google.co.jp:12345foo") == AU_ERROR_INVALID_URL_FORMAT);
115    //    assert(AU_ReleaseSource(source) == AU_OK);
116    //}
117
118    //{
119    //    assert(AU_CreateSource(NULL, CURRENT_VERSION, "http://www.google.co.jp:123 45 /foo") == AU_ERROR_INVALID_URL_FORMAT);       
120    //}
121
122    //{
123    //    AU_Source* source;
124    //    assert(AU_CreateSource(&source, CURRENT_VERSION, "http://www.google.co.jp:123 45 /foo") == AU_ERROR_INVALID_URL_FORMAT);
125    //    assert(AU_ReleaseSource(source) == AU_OK);
126    //}
127
128    {
129        AU_Source* source;
130        AU_Result result;
131        result = AU_CreateSource(&source, CURRENT_VERSION, SOURCE_URL);
132        assert(result == AU_OK);
133        result = AU_GetUpdateInformation(source);
134        assert(AU_ReleaseSource(source) == AU_OK);
135    }
136
137    buffer_test();
138
139    return 0;
140}
141
Note: See TracBrowser for help on using the browser.