Branch data Line data Source code
1 : : #include "sute.h"
2 : :
3 : : /**
4 : : *
5 : : * Testing symlink operations
6 : : *
7 : : * Test Scenario:
8 : : * 1. Add symlinks, create database
9 : : * 2. Remove symlinks, update database
10 : : * 3. Add symlinks, update database
11 : : *
12 : : */
13 : 2 : Return test0019(void)
14 : : {
15 : 2 : INITTEST;
16 : :
17 : 2 : const char *update_arguments = "--update --database=database1.db tests/fixtures/diffs/diff1";
18 : :
19 : 2 : m_create(char,pattern,MEMORY_STRING);
20 : :
21 : : // Create memory for the result
22 : 2 : m_create(char,result,MEMORY_STRING);
23 : :
24 : : // Preparation for the test
25 : 2 : ASSERT(SUCCESS == prepare_mutable_fixture("tests/fixtures/diffs/diff1"));
26 : :
27 : 2 : ASSERT(SUCCESS == set_environment_variable("TESTING","true"));
28 : 2 : ASSERT(SUCCESS == create_symlink("../../../../1/AAA/BCB/CCC/a.txt","tests/fixtures/diffs/diff1/path1/AAA/BCB/CCC/symlink_to_the_file_a.txt"));
29 : 2 : ASSERT(SUCCESS == create_symlink("../../../../AAA/ZAW/D/e/f","tests/fixtures/diffs/diff1/path1/AAA/ZAW/A/b/symlink_to_dir_f"));
30 : 2 : ASSERT(SUCCESS == create_symlink("/to/nowhere","tests/fixtures/diffs/diff1/path1/AAA/ZAW/A/b/broken_symlink"));
31 : :
32 : 2 : const char *arguments = "--database=database1.db tests/fixtures/diffs/diff1";
33 : :
34 : 2 : const char *filename = "templates/0019_001.txt";
35 : :
36 : 2 : ASSERT(SUCCESS == runit(arguments,result,NULL,COMPLETED,ALLOW_BOTH));
37 : 2 : ASSERT(SUCCESS == get_file_content(filename,pattern));
38 : 2 : ASSERT(SUCCESS == match_pattern(result,pattern,filename));
39 : :
40 : : // Clean to use it iteratively
41 : 2 : m_del(pattern);
42 : 2 : m_del(result);
43 : :
44 : 2 : ASSERT(SUCCESS == delete_path("tests/fixtures/diffs/diff1/path1/AAA/BCB/CCC/symlink_to_the_file_a.txt"));
45 : 2 : ASSERT(SUCCESS == delete_path("tests/fixtures/diffs/diff1/path1/AAA/ZAW/A/b/symlink_to_dir_f"));
46 : 2 : ASSERT(SUCCESS == delete_path("tests/fixtures/diffs/diff1/path1/AAA/ZAW/A/b/broken_symlink"));
47 : :
48 : 2 : filename = "templates/0019_002.txt";
49 : :
50 : 2 : ASSERT(SUCCESS == runit(update_arguments,result,NULL,COMPLETED,ALLOW_BOTH));
51 : 2 : ASSERT(SUCCESS == get_file_content(filename,pattern));
52 : 2 : ASSERT(SUCCESS == match_pattern(result,pattern,filename));
53 : :
54 : : // Clean to use it iteratively
55 : 2 : m_del(pattern);
56 : 2 : m_del(result);
57 : :
58 : 2 : ASSERT(SUCCESS == create_symlink("../../../../1/AAA/BCB/CCC/a.txt","tests/fixtures/diffs/diff1/path1/AAA/BCB/CCC/symlink_to_the_file_a.txt"));
59 : 2 : ASSERT(SUCCESS == create_symlink("../../../../AAA/ZAW/D/e/f","tests/fixtures/diffs/diff1/path1/AAA/ZAW/A/b/symlink_to_dir_f"));
60 : 2 : ASSERT(SUCCESS == create_symlink("/to/nowhere","tests/fixtures/diffs/diff1/path1/AAA/ZAW/A/b/broken_symlink"));
61 : :
62 : 2 : filename = "templates/0019_003.txt";
63 : :
64 : 2 : ASSERT(SUCCESS == runit(update_arguments,result,NULL,COMPLETED,ALLOW_BOTH));
65 : 2 : ASSERT(SUCCESS == get_file_content(filename,pattern));
66 : 2 : ASSERT(SUCCESS == match_pattern(result,pattern,filename));
67 : :
68 : : // Clean to use it iteratively
69 : 2 : m_del(pattern);
70 : 2 : m_del(result);
71 : :
72 : : // Clean up test results
73 : 2 : ASSERT(SUCCESS == delete_path("database1.db"));
74 : 2 : ASSERT(SUCCESS == restore_mutable_fixture("tests/fixtures/diffs/diff1"));
75 : :
76 : 2 : RETURN_STATUS;
77 : : }
|