6ecac7c4b8
43 GNU-pinned cases: `assign/export_attr.json`, plus noclobber, noexec, verbose and braceexpand under `setopt/`, which had errexit, noglob, nounset, pipefail and xtrace but none of stage 1. The noexec cases are what caught the subshell bug. Both runners and `state_store` wrote into `ws.env`, which the read-only projection refuses, so the battery could not start on either host. A meta-test now scans for that write shape across both trees: mypy runs on `mirage/` alone, so `integ/` and `tests/` are exactly where it recurs unseen.
243 lines
5.2 KiB
JSON
243 lines
5.2 KiB
JSON
{
|
|
"cases": [
|
|
{
|
|
"id": "opt_noclobber_refuses_overwrite",
|
|
"seq": 502800,
|
|
"targets": [
|
|
"ram",
|
|
"disk",
|
|
"redis",
|
|
"opfs",
|
|
"s3",
|
|
"databricks",
|
|
"gridfs",
|
|
"s3-prefix",
|
|
"databricks-prefix",
|
|
"gridfs-prefix",
|
|
"hf",
|
|
"hf-prefix",
|
|
"dropbox",
|
|
"dropbox-root",
|
|
"onedrive",
|
|
"sharepoint",
|
|
"sharepoint-prefix",
|
|
"ssh",
|
|
"nextcloud",
|
|
"gdrive",
|
|
"gdrive-folder",
|
|
"box"
|
|
],
|
|
"command": "echo a > /data/zqs1.txt; (set -C; echo b > /data/zqs1.txt); echo rc=$?; cat /data/zqs1.txt",
|
|
"expect": {
|
|
"exit": 0,
|
|
"stdout": "rc=1\na\n",
|
|
"stderr": "/data/zqs1.txt: cannot overwrite existing file\n"
|
|
}
|
|
},
|
|
{
|
|
"id": "opt_noclobber_pipe_override_writes",
|
|
"seq": 502801,
|
|
"targets": [
|
|
"ram",
|
|
"disk",
|
|
"redis",
|
|
"opfs",
|
|
"s3",
|
|
"databricks",
|
|
"gridfs",
|
|
"s3-prefix",
|
|
"databricks-prefix",
|
|
"gridfs-prefix",
|
|
"hf",
|
|
"hf-prefix",
|
|
"dropbox",
|
|
"dropbox-root",
|
|
"onedrive",
|
|
"sharepoint",
|
|
"sharepoint-prefix",
|
|
"ssh",
|
|
"nextcloud",
|
|
"gdrive",
|
|
"gdrive-folder",
|
|
"box"
|
|
],
|
|
"command": "echo a > /data/zqs2.txt; (set -C; echo b >| /data/zqs2.txt); echo rc=$?; cat /data/zqs2.txt",
|
|
"expect": {
|
|
"exit": 0,
|
|
"stdout": "rc=0\nb\n",
|
|
"stderr": ""
|
|
}
|
|
},
|
|
{
|
|
"id": "opt_noclobber_append_allowed",
|
|
"seq": 502802,
|
|
"targets": [
|
|
"ram",
|
|
"disk",
|
|
"redis",
|
|
"opfs",
|
|
"s3",
|
|
"databricks",
|
|
"gridfs",
|
|
"s3-prefix",
|
|
"databricks-prefix",
|
|
"gridfs-prefix",
|
|
"hf",
|
|
"hf-prefix",
|
|
"dropbox",
|
|
"dropbox-root",
|
|
"onedrive",
|
|
"sharepoint",
|
|
"sharepoint-prefix",
|
|
"ssh",
|
|
"nextcloud",
|
|
"gdrive",
|
|
"gdrive-folder",
|
|
"box"
|
|
],
|
|
"command": "echo a > /data/zqs3.txt; (set -C; echo b >> /data/zqs3.txt); echo rc=$?; cat /data/zqs3.txt",
|
|
"expect": {
|
|
"exit": 0,
|
|
"stdout": "rc=0\na\nb\n",
|
|
"stderr": ""
|
|
}
|
|
},
|
|
{
|
|
"id": "opt_noclobber_new_target_allowed",
|
|
"seq": 502803,
|
|
"targets": [
|
|
"ram",
|
|
"disk",
|
|
"redis",
|
|
"opfs",
|
|
"s3",
|
|
"databricks",
|
|
"gridfs",
|
|
"s3-prefix",
|
|
"databricks-prefix",
|
|
"gridfs-prefix",
|
|
"hf",
|
|
"hf-prefix",
|
|
"dropbox",
|
|
"dropbox-root",
|
|
"onedrive",
|
|
"sharepoint",
|
|
"sharepoint-prefix",
|
|
"ssh",
|
|
"nextcloud",
|
|
"gdrive",
|
|
"gdrive-folder",
|
|
"box"
|
|
],
|
|
"command": "(set -C; echo n > /data/zqs4.txt); echo rc=$?; cat /data/zqs4.txt",
|
|
"expect": {
|
|
"exit": 0,
|
|
"stdout": "rc=0\nn\n",
|
|
"stderr": ""
|
|
}
|
|
},
|
|
{
|
|
"id": "opt_noclobber_long_name_same_option",
|
|
"seq": 502804,
|
|
"targets": [
|
|
"ram",
|
|
"disk",
|
|
"redis",
|
|
"opfs",
|
|
"s3",
|
|
"databricks",
|
|
"gridfs",
|
|
"s3-prefix",
|
|
"databricks-prefix",
|
|
"gridfs-prefix",
|
|
"hf",
|
|
"hf-prefix",
|
|
"dropbox",
|
|
"dropbox-root",
|
|
"onedrive",
|
|
"sharepoint",
|
|
"sharepoint-prefix",
|
|
"ssh",
|
|
"nextcloud",
|
|
"gdrive",
|
|
"gdrive-folder",
|
|
"box"
|
|
],
|
|
"command": "echo a > /data/zqs5.txt; (set -o noclobber; echo b > /data/zqs5.txt); echo rc=$?",
|
|
"expect": {
|
|
"exit": 0,
|
|
"stdout": "rc=1\n",
|
|
"stderr": "/data/zqs5.txt: cannot overwrite existing file\n"
|
|
}
|
|
},
|
|
{
|
|
"id": "opt_noclobber_directory_wording",
|
|
"seq": 502805,
|
|
"targets": [
|
|
"ram",
|
|
"disk",
|
|
"redis",
|
|
"opfs",
|
|
"s3",
|
|
"databricks",
|
|
"gridfs",
|
|
"s3-prefix",
|
|
"databricks-prefix",
|
|
"gridfs-prefix",
|
|
"hf",
|
|
"hf-prefix",
|
|
"dropbox",
|
|
"dropbox-root",
|
|
"onedrive",
|
|
"sharepoint",
|
|
"sharepoint-prefix",
|
|
"ssh",
|
|
"nextcloud",
|
|
"gdrive",
|
|
"gdrive-folder",
|
|
"box"
|
|
],
|
|
"command": "mkdir -p /data/zqsd; (set -C; echo b > /data/zqsd); echo rc=$?",
|
|
"expect": {
|
|
"exit": 0,
|
|
"stdout": "rc=1\n",
|
|
"stderr": "/data/zqsd: Is a directory\n"
|
|
}
|
|
},
|
|
{
|
|
"id": "opt_noclobber_off_by_default",
|
|
"seq": 502806,
|
|
"targets": [
|
|
"ram",
|
|
"disk",
|
|
"redis",
|
|
"opfs",
|
|
"s3",
|
|
"databricks",
|
|
"gridfs",
|
|
"s3-prefix",
|
|
"databricks-prefix",
|
|
"gridfs-prefix",
|
|
"hf",
|
|
"hf-prefix",
|
|
"dropbox",
|
|
"dropbox-root",
|
|
"onedrive",
|
|
"sharepoint",
|
|
"sharepoint-prefix",
|
|
"ssh",
|
|
"nextcloud",
|
|
"gdrive",
|
|
"gdrive-folder",
|
|
"box"
|
|
],
|
|
"command": "echo a > /data/zqs6.txt; echo b > /data/zqs6.txt; echo rc=$?; cat /data/zqs6.txt",
|
|
"expect": {
|
|
"exit": 0,
|
|
"stdout": "rc=0\nb\n",
|
|
"stderr": ""
|
|
}
|
|
}
|
|
]
|
|
}
|