GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - unixwin/diffcorpus: A 306-case differential corpus for bash semantics: every case run live against GNU bash 5.3.20 as oracle. Distilled from unixwin's public issue history during rubash/niubash development.

BranchesTags
Open more actions menu

Latest commit

 

History

3 Commits
3 Commits

Folders and files

NameName
Last commit message
Last commit date
cases-gnu
cases-gnu
 
 
cases
cases
 
 
tools
tools
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
MANIFEST.md
MANIFEST.md
 
 
README.md
README.md
 
 
REPORT.md
REPORT.md
 
 
gnu-tests-manifest.json
gnu-tests-manifest.json
 
 
manifest.json
manifest.json
 
 
results-rubash.json
results-rubash.json
 
 
results-rubash.prev.json
results-rubash.prev.json
 
 
results-validate-gnu.json
results-validate-gnu.json
 
 
results-validate-pilot-gnu.json
results-validate-pilot-gnu.json
 
 
results-validate-pilot-rubash.json
results-validate-pilot-rubash.json
 
 
results-validate-rubash.json
results-validate-rubash.json
 
 
results.json
results.json
 
 
runner.py
runner.py
 
 
validate.log
validate.log
 
 

Repository files navigation

diffcorpus — 统一差分语料包

把散落在审计/找茬/修复工作区里的差分测试语料整合为一个成形资产包。 每条用例是一个 shell 片段,runner 将它分别交给 GNU bash 5.3.20(oracle) 与目标 shell 以 -c 非交互运行,归一化后逐项比对 stdout / stderr / 退出码 / 超时。 期望不落金标,全部由 oracle 在运行时现场给出。

构成

分区 来源 数量
cases/ audit-r1/r2(原 rubash-audit/mytests 的 cases.py + cases2.py) 246
cases/ hunt-r1(原 rubash-hunt-runs/2026-10-25-r1,case 语义 + job 控制) 60
cases-gnu/(默认不加载) GNU bash 5.3 官方 tests/ 试点转换 6 / 全量 83 文件待定

主语料按领域分文件(29 个领域),逐例出处、原始类别与分节见 MANIFEST.md / manifest.json;逐例另含平台适用性标注(platform:linux-only / posix / windows-ok / android-constrained / all / unknown,及命中规则 platform_rule), 为将来在 Windows/macOS/Android 上跑全量预留分流依据。GNU 分区的逐文件盘点 (含同一套平台标注)见 gnu-tests-manifest.json。 整合与校验结论见 REPORT.md。

跑法

cd ~/workspace/diffcorpus
# 对 rubash(任意二进制):结果写 results-rubash.json
python3 runner.py --target rubash --rubash /path/to/rubash
# 对 niubash:results-niubash.json(NIUBASH 环境变量可覆盖路径)
python3 runner.py --target niubash
# oracle 自检(包健康度,应全过):results-gnu.json
python3 runner.py --target gnu
# 只跑子集 / 带上 GNU 试点分区
python3 runner.py --target rubash --rubash /path/to/rubash --only pe01
python3 runner.py --target rubash --rubash /path/to/rubash --include-gnu --only gnu-

环境变量 GNU_BASH / RUBASH / NIUBASH 可覆盖二进制路径(与原 audit runner 同名同义)。 每例隔离临时目录、固定 LC_ALL=C TZ=UTC PATH=/usr/bin:/bin HOME=<tmp>、超时 8s; stderr 归一化二进制路径/名、临时目录随机后缀与时间数值后比较(真实差异保留)。

失败标注:gl08、ms10 是已定谳的稳定失败集,输出记为 FAIL(known-stable) 并单列; 其余失败记为 NEW。退出码:无 NEW 失败为 0,否则为 1。

再生

python3 tools/import_sources.py    # 从三源重建 cases/ + manifest.json(脚本逐字保真)
python3 tools/gnu_inventory.py     # 重建 gnu-tests-manifest.json
python3 tools/convert_gnu.py       # 重建 cases-gnu/ 试点六条
python3 tools/build_manifest_md.py # 重建 MANIFEST.md

About

A 306-case differential corpus for bash semantics: every case run live against GNU bash 5.3.20 as oracle. Distilled from unixwin's public issue history during rubash/niubash development.

Resources

Readme
MIT license

Contributing

Contributing
Activity
Custom properties

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.