Repository navigation
Commit 7aabd33
committed
0.4.0: the argument vector is passed unaltered, and the suite observes it
The implementation prepended the path to the argument vector, so a started
program received the caller's argv[0] at index 1 and could not be given the
name it observes as its own. Clause 7.6 of openkal 0.4 now states that the
vector is complete and is passed unaltered, and this is that change.
The suite did not detect it, and the reason is worth recording. It started
/bin/true and read the status, and /bin/true ignores its arguments — so the
same result was produced whether the vector arrived intact or shifted by one.
A test that starts a program without observing what the program received tests
the starting and not the vector.
The assertion added here starts a shell instead. `sh -c <script>` takes $0 from
its own argv[0] when no further argument is given, so the script observes the
name the caller chose; an implementation that prepended the path would give the
shell an extra argument, which it would read as a script file to open. The
assertion was confirmed to fail against the previous behaviour before the
behaviour was changed.
Three defects in continuous integration are also fixed, and they share a shape.
The specification version was stated twice, in the manifest and again in the
workflow, and the two drifted: the manifest moved to 0.3.0 while the workflow
compared against the 0.2.0 surface, so four names this implementation is
required to export were reported as unspecified. It is now read from the
manifest, which is the one place it is declared.
The assertion that the suites ran named two of the five present. Its purpose is
to catch a suite that discovers nothing and reports success, and a hand-written
list defeats that purpose the moment a suite is added. The list is now derived
from the files present.
The step that ran the example asserted a line the example does not print, in
support of an operation that no longer exists. It had never run: the step
before it failed first, and a step that never runs asserts nothing while
appearing to. It is replaced by the portable program, taken from the
specification at the version the manifest names rather than copied here.
The surface comparison is now --complete: this implementation claims every
interface, so a name it fails to export is a failure rather than an interface it
declines to provide. It exports all 47.1 parent 018ef5e commit 7aabd33
4 files changed
Lines changed: 106 additions & 22 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
38 | 50 | | |
39 | 51 | | |
40 | 52 | | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
45 | 75 | | |
46 | 76 | | |
47 | | - | |
48 | | - | |
49 | 77 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
57 | 85 | | |
58 | | - | |
59 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
60 | 94 | | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
61 | 106 | | |
62 | | - | |
63 | | - | |
64 | | - | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
72 | 75 | | |
73 | 76 | | |
74 | 77 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
88 | 121 | | |
89 | 122 | | |
90 | 123 | | |
| |||
0 commit comments