Files
strukto-ai--mirage/integ/bash/setopt/noclobber.json
T
Zecheng Zhang 6ecac7c4b8 test(integ): cover the new set options and the export attribute
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.
2026-08-15 14:53:14 -07:00

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": ""
}
}
]
}