Split out the invalid configurations tests
Split out the invalid configurations tests into their own file so that
they do not interfere with the valid use case examples. This paves the
way to add more invalid corner case tests.
Change-Id: I46570199440b7c4adb59115fb919aed1ba441e87
diff --git a/src/main/resources/Documentation/task_states.md b/src/main/resources/Documentation/task_states.md
index ec5c4f8..69b306e 100644
--- a/src/main/resources/Documentation/task_states.md
+++ b/src/main/resources/Documentation/task_states.md
@@ -19,9 +19,6 @@
fail = is:open
pass = is:open
-[root "Root straight INVALID"]
- applicable = is:open
-
[root "Root grouping PASS (subtask PASS)"]
applicable = is:open
subtask = Subtask PASS
@@ -34,14 +31,6 @@
applicable = is:open
subtask = Subtask FAIL
-[root "Root grouping WAITING (subtask INVALID)"]
- applicable = is:open
- subtask = Subtask INVALID
-
-[root "Root grouping WAITING (subtask missing)"]
- applicable = is:open
- subtask = MISSING
-
[root "Root READY (subtask PASS)"]
applicable = is:open
pass = -is:open
@@ -58,16 +47,6 @@
pass = is:open
subtask = Subtask FAIL
-[root "Root WAITING (subtask INVALID)"]
- applicable = is:open
- pass = is:open
- subtask = Subtask INVALID
-
-[root "Root WAITING (subtask missing)"]
- applicable = is:open
- pass = is:open
- subtask = MISSING
-
[root "Root IN PROGRESS"]
applicable = is:open
in-progress = is:open
@@ -106,6 +85,10 @@
subtasks-external = user special
subtasks-external = file missing
+[root "INVALIDS"]
+ applicable = is:open
+ subtasks-file = invalids.config
+
[task "Subtask FAIL"]
applicable = is:open
fail = is:open
@@ -120,9 +103,6 @@
applicable = is:open
pass = is:open
-[task "Subtask INVALID"]
- applicable = is:open
-
[external "user special"]
user = current-user
file = special.config
@@ -149,6 +129,38 @@
pass = is:open
```
+`task/invalids.config` file in project `All-Projects` on ref `refs/meta/config`.
+
+```
+[task "No PASS criteria"]
+ applicable = is:open
+
+[task "WAITING (subtask INVALID)"]
+ applicable = is:open
+ pass = is:open
+ subtask = Subtask INVALID
+
+[task "WAITING (subtask missing)"]
+ applicable = is:open
+ pass = is:open
+ subtask = MISSING # security bug: subtask name appears in output
+
+[task "Grouping WAITING (subtask INVALID)"]
+ applicable = is:open
+ subtask = Subtask INVALID
+
+[task "Grouping WAITING (subtask missing)"]
+ applicable = is:open
+ subtask = MISSING # security bug: subtask name appears in output
+
+[task "Subtask INVALID"]
+ applicable = is:open
+
+[external "external missing"]
+ user = mfick
+ file = missing
+```
+
`task/special.config` file in project `All-Users` on ref `refs/users/self`.
```
@@ -182,10 +194,6 @@
"status" : "FAIL"
},
{
- "name" : "Root straight INVALID",
- "status" : "INVALID"
- },
- {
"name" : "Root grouping PASS (subtask PASS)",
"status" : "PASS",
"subTasks" : [
@@ -222,26 +230,6 @@
]
},
{
- "name" : "Root grouping WAITING (subtask INVALID)",
- "status" : "WAITING",
- "subTasks" : [
- {
- "name" : "Subtask INVALID",
- "status" : "INVALID"
- }
- ]
- },
- {
- "name" : "Root grouping WAITING (subtask missing)",
- "status" : "WAITING",
- "subTasks" : [
- {
- "name" : "MISSING",
- "status" : "INVALID"
- }
- ]
- },
- {
"name" : "Root READY (subtask PASS)",
"readyHint" : "You must now run the ready task",
"status" : "READY",
@@ -279,26 +267,6 @@
]
},
{
- "name" : "Root WAITING (subtask INVALID)",
- "status" : "WAITING",
- "subTasks" : [
- {
- "name" : "Subtask INVALID",
- "status" : "INVALID"
- }
- ]
- },
- {
- "name" : "Root WAITING (subtask missing)",
- "status" : "WAITING",
- "subTasks" : [
- {
- "name" : "MISSING",
- "status" : "INVALID"
- }
- ]
- },
- {
"inProgress" : true,
"name" : "Root IN PROGRESS",
"status" : "READY"
@@ -399,6 +367,60 @@
"status" : "FAIL"
}
]
+ },
+ {
+ "name" : "INVALIDS",
+ "status" : "WAITING",
+ "subTasks" : [
+ {
+ "name" : "No PASS criteria",
+ "status" : "INVALID"
+ },
+ {
+ "name" : "WAITING (subtask INVALID)",
+ "status" : "WAITING",
+ "subTasks" : [
+ {
+ "name" : "Subtask INVALID",
+ "status" : "INVALID"
+ }
+ ]
+ },
+ {
+ "name" : "WAITING (subtask missing)",
+ "status" : "WAITING",
+ "subTasks" : [
+ {
+ "name" : "MISSING",
+ "status" : "INVALID"
+ }
+ ]
+ },
+ {
+ "name" : "Grouping WAITING (subtask INVALID)",
+ "status" : "WAITING",
+ "subTasks" : [
+ {
+ "name" : "Subtask INVALID",
+ "status" : "INVALID"
+ }
+ ]
+ },
+ {
+ "name" : "Grouping WAITING (subtask missing)",
+ "status" : "WAITING",
+ "subTasks" : [
+ {
+ "name" : "MISSING",
+ "status" : "INVALID"
+ }
+ ]
+ },
+ {
+ "name" : "Subtask INVALID",
+ "status" : "INVALID"
+ }
+ ]
}
]
}
diff --git a/test/check_task_statuses.sh b/test/check_task_statuses.sh
index 16167a4..5d58a6e 100755
--- a/test/check_task_statuses.sh
+++ b/test/check_task_statuses.sh
@@ -53,6 +53,7 @@
ROOT_CFG=$ALL/task.config
COMMON_CFG=$ALL_TASKS/common.config
+INVALIDS_CFG=$ALL_TASKS/invalids.config
USER_SPECIAL_CFG=$USER_TASKS/special.config
# --- Args ----
@@ -75,13 +76,13 @@
example 1 |sed -e"s/current-user/$USER/" > "$ROOT_CFG"
example 2 > "$COMMON_CFG"
-example 3 > "$USER_SPECIAL_CFG"
+example 3 > "$INVALIDS_CFG"
+example 4 > "$USER_SPECIAL_CFG"
update_repo "$ALL" "$REMOTE_ALL" "$REF_ALL"
update_repo "$USERS" "$REMOTE_USERS" "$REF_USERS"
-
-example 4 |tail -n +5| awk 'NR>1{print P};{P=$0}' > "$EXPECTED"
+example 5 |tail -n +5| awk 'NR>1{print P};{P=$0}' > "$EXPECTED"
query_plugins "status:open limit:1" > "$STATUSES"
diff "$EXPECTED" "$STATUSES"