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/alias.test.sh                              573
spec/append.test.sh                             324
spec/arg-parse.test.sh                           50
spec/arith-context.test.sh                      245
spec/arith-dynamic.test.sh                       95
spec/arith.test.sh                            1,044
spec/array-assign.test.sh                       376
spec/array-assoc.test.sh                        790
spec/array-basic.test.sh                         45
spec/array-compat.test.sh                       188
spec/array-literal.test.sh                      336
spec/array-sparse.test.sh                     1,228
spec/array.test.sh                            1,027
spec/assign-deferred.test.sh                    115
spec/assign-dialects.test.sh                    149
spec/assign-extended.test.sh                    986
spec/assign.test.sh                             768
spec/background.test.sh                         398
spec/ble-features.test.sh                       387
spec/ble-idioms.test.sh                         574
spec/ble-unset.test.sh                          243
spec/blog-other1.test.sh                         66
spec/blog1.test.sh                               96
spec/blog2.test.sh                               60
spec/bool-parse.test.sh                         176
spec/brace-expansion.test.sh                    501
spec/bugs.test.sh                               451
spec/builtin-bash.test.sh                       215
spec/builtin-bind.test.sh                       158
spec/builtin-bracket.test.sh                    770
spec/builtin-cd.test.sh                         509
spec/builtin-completion.test.sh                 641
spec/builtin-dirs.test.sh                       243
spec/builtin-echo.test.sh                       320
spec/builtin-eval-source.test.sh                379
spec/builtin-fc.test.sh                         247
spec/builtin-getopts.test.sh                    435
spec/builtin-history.test.sh                    403
spec/builtin-kill.test.sh                       327
spec/builtin-meta-assign.test.sh                376
spec/builtin-meta.test.sh                       395
spec/builtin-misc.test.sh                       164
spec/builtin-printf.test.sh                   1,597
spec/builtin-process.test.sh                    622
spec/builtin-read.test.sh                     1,185
spec/builtin-set.test.sh                        424
spec/builtin-special.test.sh                    310
spec/builtin-times.test.sh                       16
spec/builtin-trap-bash.test.sh                  657
spec/builtin-trap-err.test.sh                   647
spec/builtin-trap.test.sh                       563
spec/builtin-type-bash.test.sh                  369
spec/builtin-type.test.sh                       166
spec/builtin-vars.test.sh                       707
spec/case_.test.sh                              244
spec/command-parsing.test.sh                     65
spec/command-sub-ksh.test.sh                    109
spec/command-sub.test.sh                        299
spec/command_.test.sh                           246
spec/comments.test.sh                            12
spec/dbracket.test.sh                           486
spec/divergence.test.sh                         117
spec/dparen.test.sh                             208
spec/empty-bodies.test.sh                        25
spec/errexit-osh.test.sh                        813
spec/errexit.test.sh                            532
spec/exit-status.test.sh                        323
spec/explore-parsing.test.sh                     43
spec/extglob-files.test.sh                      384
spec/extglob-match.test.sh                      375
spec/fatal-errors.test.sh                       187
spec/for-expr.test.sh                           173
spec/func-parsing.test.sh                       106
spec/glob-bash.test.sh                          144
spec/glob.test.sh                               386
spec/globignore.test.sh                         164
spec/globstar.test.sh                            97
spec/hay-isolation.test.sh                      169
spec/hay-meta.test.sh                           307
spec/hay.test.sh                                888
spec/here-doc.test.sh                           429
spec/if_.test.sh                                 55
spec/interactive-parse.test.sh                   37
spec/interactive.test.sh                        401
spec/introspect.test.sh                         287
spec/known-differences.test.sh                   28
spec/let.test.sh                                 23
spec/loop.test.sh                               615
spec/nameref.test.sh                            637
spec/nix-idioms.test.sh                         196
spec/nocasematch-match.test.sh                   71
spec/nul-bytes.test.sh                          519
spec/osh-bugs.test.sh                            64
spec/paren-ambiguity.test.sh                    149
spec/parse-errors.test.sh                       215
spec/pipeline.test.sh                           277
spec/posix.test.sh                              161
spec/print-source-code.test.sh                   63
spec/process-sub.test.sh                        204
spec/prompt.test.sh                             349
spec/quote.test.sh                              308
spec/redir-order.test.sh                         71
spec/redirect-command.test.sh                   344
spec/redirect-multi.test.sh                     308
spec/redirect.test.sh                           595
spec/regex.test.sh                              635
spec/serialize.test.sh                          232
spec/sh-func.test.sh                            186
spec/sh-options-bash.test.sh                    153
spec/sh-options.test.sh                         765
spec/sh-usage.test.sh                           243
spec/shell-bugs.test.sh                          36
spec/shell-grammar.test.sh                      208
spec/smoke.test.sh                              126
spec/spec-harness-bug.test.sh                     9
spec/strict-options.test.sh                     351
spec/subshell.test.sh                            23
spec/temp-binding.test.sh                       161
spec/tilde.test.sh                              184
spec/toysh-posix.test.sh                        395
spec/toysh.test.sh                              140
spec/type-compat.test.sh                        159
spec/unicode.test.sh                            197
spec/var-num.test.sh                             43
spec/var-op-bash.test.sh                        536
spec/var-op-len.test.sh                         269
spec/var-op-patsub.test.sh                      413
spec/var-op-slice.test.sh                       410
spec/var-op-strip.test.sh                       398
spec/var-op-test.test.sh                        829
spec/var-ref.test.sh                            769
spec/var-sub-quote.test.sh                      362
spec/var-sub.test.sh                             64
spec/vars-bash.test.sh                           31
spec/vars-special.test.sh                       797
spec/whitespace.test.sh                         114
spec/word-eval.test.sh                           65
spec/word-split.test.sh                         912
spec/xtrace.test.sh                             428
spec/ysh-TODO-deprecate.test.sh                 184
spec/ysh-assign.test.sh                         424
spec/ysh-augmented.test.sh                      249
spec/ysh-bin.test.sh                             20
spec/ysh-blocks.test.sh                         348
spec/ysh-bugs.test.sh                           400
spec/ysh-builtin-ctx.test.sh                    168
spec/ysh-builtin-error.test.sh                  436
spec/ysh-builtin-eval.test.sh                   860
spec/ysh-builtin-help.test.sh                   124
spec/ysh-builtin-meta.test.sh                   353
spec/ysh-builtin-module.test.sh                 500
spec/ysh-builtin-private.test.sh                596
spec/ysh-builtin-process.test.sh                 85
spec/ysh-builtin-shopt.test.sh                  183
spec/ysh-builtin-trap.test.sh                    46
spec/ysh-builtins.test.sh                       702
spec/ysh-bytecode.test.sh                        18
spec/ysh-case.test.sh                           245
spec/ysh-closures.test.sh                       180
spec/ysh-cmd-lang.test.sh                        54
spec/ysh-command-sub.test.sh                    147
spec/ysh-completion.test.sh                     204
spec/ysh-control-flow.test.sh                   182
spec/ysh-convert.test.sh                        202
spec/ysh-demo.test.sh                            61
spec/ysh-dev.test.sh                            163
spec/ysh-dict.test.sh                           126
spec/ysh-env.test.sh                            309
spec/ysh-expr-arith.test.sh                     663
spec/ysh-expr-bool.test.sh                      186
spec/ysh-expr-compare.test.sh                   429
spec/ysh-expr-sub.test.sh                       121
spec/ysh-expr.test.sh                           460
spec/ysh-for.test.sh                            266
spec/ysh-func-builtin.test.sh                   184
spec/ysh-func.test.sh                           514
spec/ysh-funcs-external.test.sh                  86
spec/ysh-glob.test.sh                            36
spec/ysh-int-float.test.sh                      224
spec/ysh-interactive.test.sh                     41
spec/ysh-introspect.test.sh                     394
spec/ysh-json.test.sh                         1,288
spec/ysh-keywords.test.sh                        37
spec/ysh-list.test.sh                           262
spec/ysh-method-io.test.sh                      129
spec/ysh-method-other.test.sh                   155
spec/ysh-methods.test.sh                        690
spec/ysh-multiline.test.sh                      180
spec/ysh-namespaces.test.sh                     107
spec/ysh-nul-bytes.test.sh                       35
spec/ysh-object.test.sh                         337
spec/ysh-old.test.sh                             15
spec/ysh-options-assign.test.sh                 106
spec/ysh-options.test.sh                        760
spec/ysh-place.test.sh                          136
spec/ysh-printing.test.sh                       396
spec/ysh-proc-meta.test.sh                      267
spec/ysh-proc.test.sh                           865
spec/ysh-prompt.test.sh                         147
spec/ysh-purity.test.sh                         407
spec/ysh-regex-api.test.sh                    1,062
spec/ysh-regex-bytes-chars.test.sh              281
spec/ysh-regex.test.sh                          642
spec/ysh-reserved.test.sh                        48
spec/ysh-scope.test.sh                          908
spec/ysh-slice-range.test.sh                    278
spec/ysh-source.test.sh                          29
spec/ysh-special-vars.test.sh                    50
spec/ysh-stdlib-args.test.sh                     37
spec/ysh-stdlib.test.sh                          25
spec/ysh-string.test.sh                         542
spec/ysh-tuple.test.sh                           28
spec/ysh-unicode.test.sh                        185
spec/ysh-usage.test.sh                          287
spec/ysh-user-feedback.test.sh                  213
spec/ysh-var-sub.test.sh                         45
spec/ysh-with-sh.test.sh                        221
spec/ysh-word-eval.test.sh                      144
spec/ysh-xtrace.test.sh                         589
spec/zsh-assoc.test.sh                           63
spec/zsh-idioms.test.sh                          57

71,313 lines in 222 files