| 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 |
|
|---|
| 15 | char* 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 |
|
|---|
| 31 | void 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 |
|
|---|
| 89 | int 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 |
|
|---|