75
static void testSetM(CuTest *tc) {
79
aug = aug_init(root, loadpath, AUG_NO_STDINC|AUG_NO_LOAD);
80
CuAssertPtrNotNull(tc, aug);
81
CuAssertIntEquals(tc, AUG_NOERROR, aug_error(aug));
83
/* Change base nodes when SUB is NULL */
84
r = aug_setm(aug, "/augeas/version/save/*", NULL, "changed");
85
CuAssertIntEquals(tc, 4, r);
87
r = aug_match(aug, "/augeas/version/save/*[. = 'changed']", NULL);
88
CuAssertIntEquals(tc, 4, r);
90
/* Only change existing nodes */
91
r = aug_setm(aug, "/augeas/version/save", "mode", "again");
92
CuAssertIntEquals(tc, 4, r);
94
r = aug_match(aug, "/augeas/version/save/*", NULL);
95
CuAssertIntEquals(tc, 4, r);
97
r = aug_match(aug, "/augeas/version/save/*[. = 'again']", NULL);
98
CuAssertIntEquals(tc, 4, r);
100
/* Create a new node */
101
r = aug_setm(aug, "/augeas/version/save", "mode[last() + 1]", "newmode");
102
CuAssertIntEquals(tc, 1, r);
104
r = aug_match(aug, "/augeas/version/save/*", NULL);
105
CuAssertIntEquals(tc, 5, r);
107
r = aug_match(aug, "/augeas/version/save/*[. = 'again']", NULL);
108
CuAssertIntEquals(tc, 4, r);
110
r = aug_match(aug, "/augeas/version/save/*[last()][. = 'newmode']", NULL);
111
CuAssertIntEquals(tc, 1, r);
113
/* Noexistent base */
114
r = aug_setm(aug, "/augeas/version/save[last()+1]", "mode", "newmode");
115
CuAssertIntEquals(tc, 0, r);
117
/* Invalid path expressions */
118
r = aug_setm(aug, "/augeas/version/save[]", "mode", "invalid");
119
CuAssertIntEquals(tc, -1, r);
121
r = aug_setm(aug, "/augeas/version/save/*", "mode[]", "invalid");
122
CuAssertIntEquals(tc, -1, r);
76
126
char *output = NULL;
77
127
CuSuite* suite = CuSuiteNew();
78
128
CuSuiteSetup(suite, NULL, NULL);
80
130
SUITE_ADD_TEST(suite, testGet);
131
SUITE_ADD_TEST(suite, testSetM);
82
133
abs_top_srcdir = getenv("abs_top_srcdir");
83
134
if (abs_top_srcdir == NULL)