Spec Tests

A comprehensive test suite that compares OSH against other shells. If OSH passes these tests in BOTH Python and C++, it means that the translation works.

spec/TODO-deprecate.test.sh                      80
spec/alias.test.sh                              571
spec/append.test.sh                             303
spec/arith-context.test.sh                      216
spec/arith.test.sh                              875
spec/array-basic.test.sh                         45
spec/array-compat.test.sh                       189
spec/array.test.sh                              803
spec/assign-deferred.test.sh                    105
spec/assign-dialects.test.sh                     61
spec/assign-extended.test.sh                    881
spec/assign.test.sh                             674
spec/assoc-zsh.test.sh                           53
spec/assoc.test.sh                              797
spec/background.test.sh                         184
spec/ble-features.test.sh                       645
spec/ble-idioms.test.sh                         334
spec/blog-other1.test.sh                         57
spec/blog1.test.sh                               95
spec/blog2.test.sh                               60
spec/brace-expansion.test.sh                    502
spec/bugs.test.sh                               390
spec/builtin-bash.test.sh                       192
spec/builtin-bracket.test.sh                    581
spec/builtin-cd.test.sh                         304
spec/builtin-completion.test.sh                 596
spec/builtin-dirs.test.sh                       238
spec/builtin-echo.test.sh                       248
spec/builtin-eval-source.test.sh                249
spec/builtin-getopts.test.sh                    347
spec/builtin-history.test.sh                    198
spec/builtin-meta.test.sh                       607
spec/builtin-misc.test.sh                       161
spec/builtin-printf.test.sh                   1,100
spec/builtin-process.test.sh                    588
spec/builtin-read.test.sh                       770
spec/builtin-special.test.sh                    141
spec/builtin-times.test.sh                       15
spec/builtin-trap-bash.test.sh                  657
spec/builtin-trap-err.test.sh                   647
spec/builtin-trap.test.sh                       247
spec/builtin-type-bash.test.sh                  326
spec/builtin-type.test.sh                       117
spec/builtin-vars.test.sh                       707
spec/case_.test.sh                              199
spec/command-parsing.test.sh                     63
spec/command-sub.test.sh                        285
spec/command_.test.sh                           194
spec/comments.test.sh                            11
spec/dbracket.test.sh                           438
spec/dparen.test.sh                             205
spec/empty-bodies.test.sh                        24
spec/errexit-osh.test.sh                        758
spec/errexit.test.sh                            532
spec/exit-status.test.sh                        280
spec/explore-parsing.test.sh                     42
spec/extglob-files.test.sh                      384
spec/extglob-match.test.sh                      400
spec/fatal-errors.test.sh                       186
spec/for-expr.test.sh                           173
spec/func-parsing.test.sh                       105
spec/glob.test.sh                               388
spec/globignore.test.sh                         159
spec/hay-isolation.test.sh                      169
spec/hay-meta.test.sh                           200
spec/hay.test.sh                                699
spec/here-doc.test.sh                           370
spec/if_.test.sh                                 56
spec/interactive-parse.test.sh                   37
spec/interactive.test.sh                        343
spec/introspect.test.sh                         287
spec/let.test.sh                                 23
spec/loop.test.sh                               474
spec/nameref.test.sh                            637
spec/nix-idioms.test.sh                         196
spec/nocasematch-match.test.sh                   71
spec/nul-bytes.test.sh                          158
spec/parse-errors.test.sh                       226
spec/pipeline.test.sh                           197
spec/posix.test.sh                              153
spec/process-sub.test.sh                        204
spec/prompt.test.sh                             253
spec/quote.test.sh                              230
spec/redirect-command.test.sh                   306
spec/redirect-multi.test.sh                     308
spec/redirect.test.sh                           485
spec/regex.test.sh                              631
spec/serialize.test.sh                          230
spec/sh-func.test.sh                            152
spec/sh-options.test.sh                         787
spec/sh-usage.test.sh                            94
spec/shell-grammar.test.sh                      206
spec/smoke.test.sh                              126
spec/strict-options.test.sh                     277
spec/subshell.test.sh                            23
spec/tilde.test.sh                              184
spec/toysh-posix.test.sh                        344
spec/toysh.test.sh                              143
spec/type-compat.test.sh                        159
spec/unicode.test.sh                            196
spec/var-num.test.sh                             43
spec/var-op-bash.test.sh                        397
spec/var-op-len.test.sh                         219
spec/var-op-patsub.test.sh                      413
spec/var-op-slice.test.sh                       403
spec/var-op-strip.test.sh                       357
spec/var-op-test.test.sh                        520
spec/var-ref.test.sh                            509
spec/var-sub-quote.test.sh                      312
spec/var-sub.test.sh                             60
spec/vars-bash.test.sh                           30
spec/vars-special.test.sh                       634
spec/whitespace.test.sh                         114
spec/word-eval.test.sh                           62
spec/word-split.test.sh                         421
spec/xtrace.test.sh                             361
spec/ysh-assign.test.sh                         402
spec/ysh-augmented.test.sh                      245
spec/ysh-bin.test.sh                             19
spec/ysh-blocks.test.sh                         407
spec/ysh-bugs.test.sh                           199
spec/ysh-builtin-ctx.test.sh                    168
spec/ysh-builtin-error.test.sh                  445
spec/ysh-builtin-eval.test.sh                    99
spec/ysh-builtin-help.test.sh                    99
spec/ysh-builtin-meta.test.sh                   254
spec/ysh-builtin-module.test.sh                  38
spec/ysh-builtin-process.test.sh                 85
spec/ysh-builtin-shopt.test.sh                  180
spec/ysh-builtins.test.sh                       551
spec/ysh-case.test.sh                           245
spec/ysh-cmd-lang.test.sh                        54
spec/ysh-command-sub.test.sh                    147
spec/ysh-completion.test.sh                     204
spec/ysh-convert.test.sh                        171
spec/ysh-demo.test.sh                            59
spec/ysh-dev.test.sh                            163
spec/ysh-dict.test.sh                            91
spec/ysh-expr-arith.test.sh                     369
spec/ysh-expr-bool.test.sh                      185
spec/ysh-expr-compare.test.sh                   389
spec/ysh-expr-sub.test.sh                        42
spec/ysh-expr.test.sh                           697
spec/ysh-for.test.sh                            192
spec/ysh-func-builtin.test.sh                   103
spec/ysh-func.test.sh                           535
spec/ysh-funcs-external.test.sh                  86
spec/ysh-int-float.test.sh                      200
spec/ysh-interactive.test.sh                     37
spec/ysh-json.test.sh                         1,259
spec/ysh-keywords.test.sh                        37
spec/ysh-list.test.sh                            97
spec/ysh-methods.test.sh                        490
spec/ysh-multiline.test.sh                      179
spec/ysh-options-assign.test.sh                 106
spec/ysh-options.test.sh                        811
spec/ysh-place.test.sh                          136
spec/ysh-printing.test.sh                       273
spec/ysh-proc.test.sh                           526
spec/ysh-prompt.test.sh                         133
spec/ysh-regex-api.test.sh                      829
spec/ysh-regex.test.sh                          711
spec/ysh-reserved.test.sh                        48
spec/ysh-scope.test.sh                          766
spec/ysh-slice-range.test.sh                    209
spec/ysh-source.test.sh                          29
spec/ysh-special-vars.test.sh                    50
spec/ysh-stdlib-2.test.sh                       158
spec/ysh-stdlib-args.test.sh                    333
spec/ysh-stdlib-testing.test.sh                 125
spec/ysh-stdlib.test.sh                         222
spec/ysh-string.test.sh                         548
spec/ysh-tuple.test.sh                           28
spec/ysh-unicode.test.sh                        184
spec/ysh-usage.test.sh                           47
spec/ysh-user-feedback.test.sh                  141
spec/ysh-var-sub.test.sh                         45
spec/ysh-with-sh.test.sh                        221
spec/ysh-word-eval.test.sh                      145
spec/ysh-xtrace.test.sh                         547
spec/zsh-idioms.test.sh                          45

52,909 lines in 182 files