~ci-train-bot/url-dispatcher/url-dispatcher-ubuntu-zesty-2174

« back to all changes in this revision

Viewing changes to tests/directory-update-test.cc

  • Committer: CI bot
  • Author(s): Jussi Pakkanen
  • Date: 2014-10-31 15:50:49 UTC
  • mfrom: (74.1.8 url-dispatcher)
  • Revision ID: ps-jenkins@lists.canonical.com-20141031155049-m4fu0cnmriksccmp
General cleanups 
Approved by: Ted Gould, PS Jenkins bot

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
 *
15
15
 */
16
16
 
 
17
#include "test-config.h"
 
18
 
17
19
#include <gtest/gtest.h>
18
20
#include "url-db.h"
19
21
#include <glib.h>
21
23
class DirectoryUpdateTest : public ::testing::Test
22
24
{
23
25
        protected:
24
 
                gchar * cachedir = NULL;
 
26
                gchar * cachedir = nullptr;
25
27
 
26
28
                virtual void SetUp() {
27
 
                        cachedir = g_build_filename(CMAKE_BINARY_DIR, "url-db-test-cache", NULL);
 
29
                        cachedir = g_build_filename(CMAKE_BINARY_DIR, "url-db-test-cache", nullptr);
28
30
                        g_setenv("URL_DISPATCHER_CACHE_DIR", cachedir, TRUE);
29
31
                }
30
32
 
31
33
                virtual void TearDown() {
32
34
                        gchar * cmdline = g_strdup_printf("rm -rf \"%s\"", cachedir);
33
 
                        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
35
                        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
34
36
                        g_free(cmdline);
35
37
                        g_free(cachedir);
36
38
                }
41
43
                                        "select count(*) from configfiles",
42
44
                                        -1, /* length */
43
45
                                        &stmt,
44
 
                                        NULL) != SQLITE_OK) {
 
46
                                        nullptr) != SQLITE_OK) {
45
47
                                g_warning("Unable to parse SQL to get file times");
46
48
                                return 0;
47
49
                        }
68
70
                                        "select count(*) from urls",
69
71
                                        -1, /* length */
70
72
                                        &stmt,
71
 
                                        NULL) != SQLITE_OK) {
 
73
                                        nullptr) != SQLITE_OK) {
72
74
                                g_warning("Unable to parse SQL to get file times");
73
75
                                return 0;
74
76
                        }
95
97
                                        "select count(*) from configfiles where name = ?1",
96
98
                                        -1, /* length */
97
99
                                        &stmt,
98
 
                                        NULL) != SQLITE_OK) {
 
100
                                        nullptr) != SQLITE_OK) {
99
101
                                g_warning("Unable to parse SQL to get file times");
100
102
                                return false;
101
103
                        }
129
131
                                        "select count(*) from urls where protocol = ?1 and domainsuffix = ?2",
130
132
                                        -1, /* length */
131
133
                                        &stmt,
132
 
                                        NULL) != SQLITE_OK) {
 
134
                                        nullptr) != SQLITE_OK) {
133
135
                                g_warning("Unable to parse SQL to get file times");
134
136
                                return false;
135
137
                        }
164
166
        sqlite3 * db = url_db_create_database();
165
167
 
166
168
        gchar * cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, CMAKE_SOURCE_DIR "/this-does-not-exist");
167
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
169
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
168
170
        g_free(cmdline);
169
171
 
170
172
        EXPECT_EQ(0, get_file_count(db));
171
173
        EXPECT_EQ(0, get_url_count(db));
172
174
 
173
175
        sqlite3_close(db);
174
 
};
 
176
}
175
177
 
176
178
TEST_F(DirectoryUpdateTest, SingleGoodItem)
177
179
{
178
180
        sqlite3 * db = url_db_create_database();
179
181
 
180
182
        gchar * cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_URLS);
181
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
183
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
182
184
        g_free(cmdline);
183
185
 
184
186
        EXPECT_EQ(1, get_file_count(db));
188
190
        EXPECT_TRUE(has_url(db, "http", "ubuntu.com"));
189
191
 
190
192
        sqlite3_close(db);
191
 
};
 
193
}
192
194
 
193
195
TEST_F(DirectoryUpdateTest, RerunAgain)
194
196
{
195
 
        gchar * cmdline = NULL;
 
197
        gchar * cmdline = nullptr;
196
198
        sqlite3 * db = url_db_create_database();
197
199
 
198
200
        cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_URLS);
199
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
200
 
        g_free(cmdline);
201
 
 
202
 
        EXPECT_EQ(1, get_file_count(db));
203
 
        EXPECT_EQ(1, get_url_count(db));
204
 
 
205
 
        cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_URLS);
206
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
207
 
        g_free(cmdline);
208
 
 
209
 
        EXPECT_EQ(1, get_file_count(db));
210
 
        EXPECT_EQ(1, get_url_count(db));
211
 
 
212
 
        cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_URLS);
213
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
201
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
 
202
        g_free(cmdline);
 
203
 
 
204
        EXPECT_EQ(1, get_file_count(db));
 
205
        EXPECT_EQ(1, get_url_count(db));
 
206
 
 
207
        cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_URLS);
 
208
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
 
209
        g_free(cmdline);
 
210
 
 
211
        EXPECT_EQ(1, get_file_count(db));
 
212
        EXPECT_EQ(1, get_url_count(db));
 
213
 
 
214
        cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_URLS);
 
215
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
214
216
        g_free(cmdline);
215
217
 
216
218
        EXPECT_EQ(1, get_file_count(db));
217
219
        EXPECT_EQ(1, get_url_count(db));
218
220
 
219
221
        sqlite3_close(db);
220
 
};
 
222
}
221
223
 
222
224
TEST_F(DirectoryUpdateTest, VariedItems)
223
225
{
224
226
        sqlite3 * db = url_db_create_database();
225
227
 
226
228
        gchar * cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_VARIED);
227
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
229
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
228
230
        g_free(cmdline);
229
231
 
230
232
        EXPECT_EQ(6, get_file_count(db));
266
268
        EXPECT_FALSE(has_url(db, "dupfile", "this.is.in.two.file.org"));
267
269
 
268
270
        sqlite3_close(db);
269
 
};
 
271
}
270
272
 
271
273
TEST_F(DirectoryUpdateTest, RemoveFile)
272
274
{
274
276
        sqlite3 * db = url_db_create_database();
275
277
 
276
278
        /* A temporary directory to put files in */
277
 
        gchar * datadir = g_build_filename(CMAKE_BINARY_DIR, "remove-file-data", NULL);
 
279
        gchar * datadir = g_build_filename(CMAKE_BINARY_DIR, "remove-file-data", nullptr);
278
280
        g_mkdir_with_parents(datadir,  1 << 6 | 1 << 7 | 1 << 8); // 700
279
281
        ASSERT_TRUE(g_file_test(datadir, (GFileTest)(G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR)));
280
282
 
281
283
        /* Copy the files */
282
284
        cmdline = g_strdup_printf("cp \"%s/%s\" \"%s\"", UPDATE_DIRECTORY_URLS, "single-good.url-dispatcher", datadir);
283
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
285
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
284
286
        g_free(cmdline);
285
287
 
286
288
        /* Run the tool */
287
289
        cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, datadir);
288
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
290
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
289
291
        g_free(cmdline);
290
292
 
291
293
        EXPECT_EQ(1, get_file_count(db));
293
295
 
294
296
        /* Kill the files */
295
297
        cmdline = g_strdup_printf("rm \"%s/%s\"", datadir, "single-good.url-dispatcher");
296
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
298
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
297
299
        g_free(cmdline);
298
300
 
299
301
        /* Run the tool */
300
302
        cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, datadir);
301
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
303
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
302
304
        g_free(cmdline);
303
305
 
304
306
        EXPECT_EQ(0, get_file_count(db));
306
308
 
307
309
        /* Cleanup */
308
310
        cmdline = g_strdup_printf("rm -rf \"%s\"", datadir);
309
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
311
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
310
312
        g_free(cmdline);
311
313
 
312
314
        sqlite3_close(db);
318
320
        sqlite3 * db = url_db_create_database();
319
321
 
320
322
        /* A temporary directory to put files in */
321
 
        gchar * datadir = g_build_filename(CMAKE_BINARY_DIR, "remove-directory-data", NULL);
 
323
        gchar * datadir = g_build_filename(CMAKE_BINARY_DIR, "remove-directory-data", nullptr);
322
324
        g_mkdir_with_parents(datadir,  1 << 6 | 1 << 7 | 1 << 8); // 700
323
325
        ASSERT_TRUE(g_file_test(datadir, (GFileTest)(G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR)));
324
326
 
325
327
        /* Copy the files */
326
328
        cmdline = g_strdup_printf("cp \"%s/%s\" \"%s\"", UPDATE_DIRECTORY_URLS, "single-good.url-dispatcher", datadir);
327
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
329
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
328
330
        g_free(cmdline);
329
331
 
330
332
        /* Run the tool */
331
333
        cmdline = g_strdup_printf("%s \"%s/\"", UPDATE_DIRECTORY_TOOL, datadir);
332
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
334
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
333
335
        g_free(cmdline);
334
336
 
335
337
        EXPECT_EQ(1, get_file_count(db));
337
339
 
338
340
        /* Kill the dir */
339
341
        cmdline = g_strdup_printf("rm -rf \"%s\"", datadir);
340
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
342
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
341
343
        g_free(cmdline);
342
344
 
343
345
        /* Run the tool */
344
346
        cmdline = g_strdup_printf("%s \"%s/\"", UPDATE_DIRECTORY_TOOL, datadir);
345
 
        g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
 
347
        g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
346
348
        g_free(cmdline);
347
349
 
348
350
        EXPECT_EQ(0, get_file_count(db));