1# Test that editing a symlink does not mangle it
2
3body common control
4{
5      inputs => { "../../default.cf.sub" };
6      bundlesequence  => { default("$(this.promise_filename)") };
7      version => "1.0";
8}
9
10bundle agent init
11{
12  files:
13      "$(G.testdir)/file_dir/file"
14      create => "true",
15      edit_line => edit_init;
16      "$(G.testdir)/link_dir/."
17      create => "true";
18      "$(G.testdir)/link_dir/link"
19      link_from => link_init;
20}
21
22bundle edit_line edit_init
23{
24  insert_lines:
25      "Initial line";
26}
27
28body link_from link_init
29{
30      link_type => "symlink";
31      source => "../file_dir/file";
32}
33
34bundle agent test
35{
36  meta:
37      "test_skip_unsupported" string => "windows";
38
39  files:
40      "$(G.testdir)/link_dir/link"
41      edit_line => edit_test;
42}
43
44bundle edit_line edit_test
45{
46  insert_lines:
47      "Added line";
48}
49
50bundle agent check
51{
52  classes:
53      "link_ok" expression => islink("$(G.testdir)/link_dir/link");
54      "file_ok" not => islink("$(G.testdir)/file_dir/file");
55      "link_line_one_ok" expression => regline("Initial line", "$(G.testdir)/link_dir/link");
56      "file_line_one_ok" expression => regline("Initial line", "$(G.testdir)/file_dir/file");
57      "link_line_two_ok" expression => regline("Added line", "$(G.testdir)/link_dir/link");
58      "file_line_two_ok" expression => regline("Added line", "$(G.testdir)/file_dir/file");
59      "ok" and => { "link_ok", "file_ok", "link_line_one_ok", "file_line_one_ok", "link_line_two_ok", "file_line_two_ok" };
60
61  reports:
62    ok::
63      "$(this.promise_filename) Pass";
64    !ok::
65      "$(this.promise_filename) FAIL";
66}
67
68### PROJECT_ID: core
69### CATEGORY_ID: 27
70