Skip to content

Commit 8b973a6

Browse files
author
Zhou Hao
authored
Merge pull request #308 from wking/granular-tap
runtimetest: Make TAP output more granular
2 parents fcd5b23 + e1ad3f0 commit 8b973a6

File tree

5 files changed

+731
-459
lines changed

5 files changed

+731
-459
lines changed

README.md

Lines changed: 34 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -49,41 +49,16 @@ For the command line interface, the `RUNTIME` option selects the runtime command
4949

5050
```
5151
$ sudo make RUNTIME=runc localvalidation
52-
RUNTIME=runc tap validation/linux_rootfs_propagation_shared.t validation/create.t validation/default.t validation/linux_readonly_paths.t validation/linux_masked_paths.t validation/mounts.t validation/process.t validation/root_readonly_false.t validation/linux_sysctl.t validation/linux_devices.t validation/linux_gid_mappings.t validation/process_oom_score_adj.t validation/process_capabilities.t validation/process_rlimits.t validation/root_readonly_true.t validation/linux_rootfs_propagation_unbindable.t validation/hostname.t validation/linux_uid_mappings.t
53-
validation/linux_rootfs_propagation_shared.t ........ 18/19
54-
not ok rootfs propagation
55-
error: 'rootfs should be shared, but not'
56-
57-
validation/create.t ................................... 4/4
58-
validation/default.t ................................ 19/19
59-
validation/linux_readonly_paths.t ................... 19/19
60-
validation/linux_masked_paths.t ..................... 18/19
61-
not ok masked paths
62-
error: /masktest should not be readable
63-
64-
validation/mounts.t ................................... 0/1
65-
Skipped: 1
66-
TODO: mounts generation options have not been implemented
67-
68-
validation/process.t ................................ 19/19
69-
validation/root_readonly_false.t .................... 19/19
70-
validation/linux_sysctl.t ........................... 19/19
71-
validation/linux_devices.t .......................... 19/19
72-
validation/linux_gid_mappings.t ..................... 18/19
73-
not ok gid mappings
74-
75-
validation/process_oom_score_adj.t .................. 19/19
76-
validation/process_capabilities.t ................... 19/19
77-
validation/process_rlimits.t ........................ 19/19
78-
validation/root_readonly_true.t ...................failed to create the container
79-
rootfsPropagation=unbindable is not supported
52+
RUNTIME=runc tap validation/pidfile.t validation/linux_cgroups_hugetlb.t validation/linux_cgroups_memory.t validation/linux_rootfs_propagation_shared.t validation/kill.t validation/create.t validation/poststart.t validation/linux_cgroups_network.t validation/poststop_fail.t validation/linux_readonly_paths.t validation/prestart_fail.t validation/hooks_stdin.t validation/default.t validation/linux_masked_paths.t validation/poststop.t validation/misc_props.t validation/prestart.t validation/poststart_fail.t validation/mounts.t validation/linux_cgroups_relative_pids.t validation/process_user.t validation/process.t validation/hooks.t validation/process_capabilities_fail.t validation/process_rlimits_fail.t validation/linux_cgroups_relative_cpus.t validation/process_rlimits.t validation/linux_cgroups_relative_blkio.t validation/linux_sysctl.t validation/linux_seccomp.t validation/linux_devices.t validation/start.t validation/linux_cgroups_pids.t validation/process_capabilities.t validation/process_oom_score_adj.t validation/linux_cgroups_relative_hugetlb.t validation/linux_cgroups_cpus.t validation/linux_cgroups_relative_memory.t validation/state.t validation/root_readonly_true.t validation/linux_cgroups_blkio.t validation/linux_rootfs_propagation_unbindable.t validation/delete.t validation/linux_cgroups_relative_network.t validation/hostname.t validation/killsig.t validation/linux_uid_mappings.t
53+
validation/pidfile.t .failed to create the container
54+
container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"process_linux.go:367: setting cgroup config for procHooks process caused \\\"failed to write 56892210544640 to hugetlb.1GB.limit_in_bytes: open /sys/fs/cgroup/hugetlb/cgrouptest/hugetlb.1GB.limit_in_bytes: permission denied\\\"\""
8055
exit status 1
81-
validation/root_readonly_true.t ..................... 19/19
82-
validation/linux_rootfs_propagation_unbindable.t ...... 0/1
83-
not ok validation/linux_rootfs_propagation_unbindable.t
56+
validation/pidfile.t .................................. 1/1 315ms
57+
validation/linux_cgroups_hugetlb.t .................... 0/1
58+
not ok validation/linux_cgroups_hugetlb.t
8459
timeout: 30000
85-
file: validation/linux_rootfs_propagation_unbindable.t
86-
command: validation/linux_rootfs_propagation_unbindable.t
60+
file: validation/linux_cgroups_hugetlb.t
61+
command: validation/linux_cgroups_hugetlb.t
8762
args: []
8863
stdio:
8964
- 0
@@ -92,90 +67,49 @@ validation/linux_rootfs_propagation_unbindable.t ...... 0/1
9267
cwd: /…/go/src/github.com/opencontainers/runtime-tools
9368
exitCode: 1
9469
95-
validation/hostname.t ...................failed to create the container
96-
User namespace mappings specified, but USER namespace isn't enabled in the config
97-
exit status 1
98-
validation/hostname.t ............................... 19/19
99-
validation/linux_uid_mappings.t ....................... 0/1
100-
not ok validation/linux_uid_mappings.t
101-
timeout: 30000
102-
file: validation/linux_uid_mappings.t
103-
command: validation/linux_uid_mappings.t
104-
args: []
105-
stdio:
106-
- 0
107-
- pipe
108-
- 2
109-
cwd: /…/go/src/github.com/opencontainers/runtime-tools
110-
exitCode: 1
70+
validation/linux_cgroups_memory.t ..................... 9/9
71+
validation/linux_rootfs_propagation_shared.t ...... 252/282
72+
not ok shared root propogation exposes "/target348456609/mount892511628/example376408222"
11173
112-
total ............................................. 267/273
74+
Skipped: 29
75+
/dev/null (default device) has unconfigured permissions
76+
77+
total ........................................... 4381/4962
11378
11479
115-
267 passing (31s)
116-
1 pending
117-
5 failing
80+
4381 passing (1m)
81+
567 pending
82+
14 failing
11883
119-
make: *** [Makefile:43: localvalidation] Error 1
84+
make: *** [Makefile:44: localvalidation] Error 1
12085
```
12186

12287
You can also run an individual test executable directly:
12388

12489
```console
12590
$ RUNTIME=runc validation/default.t
12691
TAP version 13
127-
ok 1 - root filesystem
128-
ok 2 - hostname
129-
ok 3 - process
130-
ok 4 - mounts
131-
ok 5 - user
132-
ok 6 - rlimits
133-
ok 7 - capabilities
134-
ok 8 - default symlinks
135-
ok 9 - default file system
136-
ok 10 - default devices
137-
ok 11 - linux devices
138-
ok 12 - linux process
139-
ok 13 - masked paths
140-
ok 14 - oom score adj
141-
ok 15 - read only paths
142-
ok 16 - rootfs propagation
143-
ok 17 - sysctls
144-
ok 18 - uid mappings
145-
ok 19 - gid mappings
146-
1..19
92+
ok 1 - has expected hostname
93+
---
94+
{
95+
"actual": "mrsdalloway",
96+
"expected": "mrsdalloway"
97+
}
98+
...
99+
100+
ok 287 # SKIP linux.gidMappings not set
101+
1..287
147102
```
148103

149104
If you cannot install node-tap, you can probably run the test suite with another [TAP consumer][tap-consumers].
150105
For example, with [`prove`][prove]:
151106

152107
```console
153-
$ sudo make TAP='prove -Q -j9' RUNTIME=runc localvalidation
154-
RUNTIME=runc prove -Q -j9 validation/linux_rootfs_propagation_shared.t validation/create.t validation/default.t validation/linux_readonly_paths.t validation/linux_masked_paths.t validation/mounts.t validation/process.t validation/root_readonly_false.t validation/linux_sysctl.t validation/linux_devices.t validation/linux_gid_mappings.t validation/process_oom_score_adj.t validation/process_capabilities.t validation/process_rlimits.t validation/root_readonly_true.t validation/linux_rootfs_propagation_unbindable.t validation/hostname.t validation/linux_uid_mappings.t
155-
failed to create the container
156-
rootfsPropagation=unbindable is not supported
157-
exit status 1
158-
failed to create the container
159-
User namespace mappings specified, but USER namespace isn't enabled in the config
160-
exit status 1
161-
162-
Test Summary Report
163-
-------------------
164-
validation/linux_rootfs_propagation_shared.t (Wstat: 0 Tests: 19 Failed: 1)
165-
Failed test: 16
166-
validation/linux_masked_paths.t (Wstat: 0 Tests: 19 Failed: 1)
167-
Failed test: 13
168-
validation/linux_rootfs_propagation_unbindable.t (Wstat: 256 Tests: 0 Failed: 0)
169-
Non-zero exit status: 1
170-
Parse errors: No plan found in TAP output
171-
validation/linux_uid_mappings.t (Wstat: 256 Tests: 0 Failed: 0)
172-
Non-zero exit status: 1
173-
Parse errors: No plan found in TAP output
174-
validation/linux_gid_mappings.t (Wstat: 0 Tests: 19 Failed: 1)
175-
Failed test: 19
176-
Files=18, Tests=271, 6 wallclock secs ( 0.06 usr 0.01 sys + 0.59 cusr 0.24 csys = 0.90 CPU)
177-
Result: FAIL
178-
make: *** [Makefile:43: localvalidation] Error 1
108+
$ sudo make TAP='prove -Q -j9' RUNTIME=runc VALIDATION_TESTS=validation/pidfile.t localvalidation
109+
RUNTIME=runc prove -Q -j9 validation/pidfile.t
110+
All tests successful.
111+
Files=1, Tests=1, 0 wallclock secs ( 0.01 usr 0.01 sys + 0.03 cusr 0.03 csys = 0.08 CPU)
112+
Result: PASS
179113
```
180114

181115
[bundle]: https://github.com/opencontainers/runtime-spec/blob/master/bundle.md

0 commit comments

Comments
 (0)