(t *testing.T)
| 1199 | } |
| 1200 | |
| 1201 | func TestOverlappingFilterCheckWithFilter(t *testing.T) { |
| 1202 | ctx := context.Background() |
| 1203 | fi, err := filter.NewFilter(nil) |
| 1204 | require.NoError(t, err) |
| 1205 | require.NoError(t, fi.Add(false, "/exclude/")) |
| 1206 | require.NoError(t, fi.Add(false, "/Exclude2/")) |
| 1207 | require.NoError(t, fi.Add(true, "*")) |
| 1208 | ctx = filter.ReplaceConfig(ctx, fi) |
| 1209 | |
| 1210 | src := &testFs{testFsInfo{name: "name", root: "root"}} |
| 1211 | src.features.CaseInsensitive = true |
| 1212 | slash := string(os.PathSeparator) // native path separator |
| 1213 | for _, test := range []struct { |
| 1214 | name string |
| 1215 | root string |
| 1216 | expected bool |
| 1217 | }{ |
| 1218 | {"name", "root", true}, |
| 1219 | {"name", "ROOT", true}, // case insensitive is set |
| 1220 | {"name", "/root", true}, |
| 1221 | {"name", "root/", true}, |
| 1222 | {"name", "root" + slash, true}, |
| 1223 | {"name", "root/exclude", false}, |
| 1224 | {"name", "root/Exclude2", false}, |
| 1225 | {"name", "root/include", true}, |
| 1226 | {"name", "root/exclude/", false}, |
| 1227 | {"name", "root/Exclude2/", false}, |
| 1228 | {"name", "root/exclude/sub", false}, |
| 1229 | {"name", "root/Exclude2/sub", false}, |
| 1230 | {"name", "/root/exclude/", false}, |
| 1231 | {"name", "root" + slash + "exclude", false}, |
| 1232 | {"name", "root" + slash + "exclude" + slash, false}, |
| 1233 | {"namey", "root/include", false}, |
| 1234 | {"namey", "root/include/", false}, |
| 1235 | {"namey", "root" + slash + "include", false}, |
| 1236 | {"namey", "root" + slash + "include" + slash, false}, |
| 1237 | } { |
| 1238 | dst := &testFs{testFsInfo{name: test.name, root: test.root}} |
| 1239 | dst.features.CaseInsensitive = true |
| 1240 | what := fmt.Sprintf("(%q,%q) vs (%q,%q)", src.name, src.root, dst.name, dst.root) |
| 1241 | actual := operations.OverlappingFilterCheck(ctx, dst, src) |
| 1242 | assert.Equal(t, test.expected, actual, what) |
| 1243 | actual = operations.OverlappingFilterCheck(ctx, src, dst) |
| 1244 | assert.Equal(t, test.expected, actual, what) |
| 1245 | } |
| 1246 | } |
| 1247 | |
| 1248 | func TestListFormat(t *testing.T) { |
| 1249 | item0 := &operations.ListJSONItem{ |
nothing calls this directly
no test coverage detected
searching dependent graphs…