SabiRuby mruby compatibility report

SabiRuby
Commitf06a23ab333cca70926ea235da0ff7cce07da422
dirtyFalse
Generated2026-10-19T00:37:01.573115+00:00
Featuresutf8, regexp (the default)
Upstream891d1d9dc90f1578eedd1003d645250d94eb07e9

Counts include only reached assert blocks (including nested blocks), not individual assert_equal calls. Interrupted files may have further unevaluated tests; their count is unknown. Conditional tests not entered by this build are not counted as skips.

Both columns: the 48 files of mruby's test/t at the upstream revision, mruby/edge's helpers.rb as the assertion driver, one process with a fresh VM per file.

Summary

SabiRubySabiRuby (with C fixtures)
Files4848
passed3030
failed1718
runtime error10
Asserts reached944976
pass858883
fail3343
error3431
warn00
skip22
stress1717
interrupted00

Reference column (SabiRuby only, another driver): the same 48 files under mruby's own test/assert.rb with SabiRuby's ports of the C fixtures of mruby's test driver (sabiruby mrbtest): total 976, ok 883, ko 43, crash 31, skip 2, warn 0. Per file in the table below.

Conditions

Testsmruby 891d1d9dc90f1578eedd1003d645250d94eb07e9 test/t, 48 files, checked against mruby/edge's SHA256SUMS
VMf06a23ab33 (sabiruby 0.8.0 (mruby 4.1 bytecode, RITE 0400), compiler: mruby 4.1.0-rc2 (c17ffcc24), Prism 1.9.0)
Drivermruby/edge's helpers.rb, unmodified; natives t_print, _str_match?, _spec_event in the command (sabiruby edge-spec)
Compilerreference mrbc 891d1d9dc90f1578eedd1003d645250d94eb07e9 (Docker kishima/mruby:891d1d9d), -g
C fixturesnone in the SabiRuby column (mruby's test driver writes some helpers in C: __env_*, TestNotImplement, TestVFormat, …); SabiRuby's ports of them in the SabiRuby (with C fixtures) column
Runone process per file, fresh VM, 30 s per file, end-of-file marker $spec_completed = true
Machine13th Gen Intel(R) Core(TM) i7-13700, Linux 6.18.54.1-microsoft-standard-WSL2

The test files (mruby 891d1d9d, 48 files, identical to mruby/edge's SHA256SUMS) and the assertion driver (mruby/edge's helpers.rb, unmodified) are the ones mruby/edge uses for its own compatibility report. mruby/edge's results are in mruby/edge's report.

Files

pass · fail · error, then warn·skip·stress·interrupted. Every assert of a file is under the table.

fileSabiRubySabiRuby (with C fixtures)assert.rb
ok / total
notes
statuspassfailerrotherstatuspassfailerrother
argumenterrorpassed9000·0·0·0passed9000·0·0·09 / 9
arrayfailed62010·0·1·0failed62010·0·1·062 / 64AryShared is a C fixture of mruby's test driver; neither driver installs it. "Array#[] with a Float index that stands for no Integer": behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (e2148c1b1).
basicobjectfailed3200·0·0·0failed3200·0·0·03 / 5The two BasicObject#== tests: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (55ae46dcf, d8873e7b1).
bs_blockpassed46000·0·0·0passed46000·0·0·046 / 46
bs_literalpassed9000·0·0·0passed9000·0·0·09 / 9
classfailed48100·0·0·0failed48100·0·0·048 / 49"a def in a method written in a block given a class adds to that class": behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (3d0ec2771).
codegenfailed21100·0·0·0failed21100·0·0·021 / 22"register window of calls (#3783)" expects /static/ to raise NoMethodError, which holds only in a build without Regexp; SabiRuby has mruby-regexp (docs/verification/mrbtest-notes.md).
comparablepassed7000·0·0·0passed7000·0·0·07 / 7
ensurepassed6000·0·0·0passed6000·0·0·06 / 6
enumerablepassed23000·0·0·0passed23000·0·0·023 / 23
envfailed0080·0·0·0failed0080·0·0·00 / 8Every assert calls __env_*, C fixtures of mruby's test driver; neither driver installs them. SabiRuby ports two of them (__env_svar?, __env_svar_slot), not the ones these tests call, so the column with C fixtures fails them too.
exceptionfailed36300·0·0·0failed36300·0·0·036 / 39$! set by the rescue modifier and ensure, and the bare raise that re-raises it: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (b7df80fc4, c05a266a5).
falsepassed6000·0·0·0passed6000·0·0·06 / 6
floatfailed28300·0·0·0failed28300·0·0·028 / 31"a NaN is the object it is and no other" also fails with rc2's tests: a deliberate deviation (docs/verification/mrbtest-notes.md). The two "redefined on Float" tests: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (35b0428c9, fa3dead08).
gcfailed11110·0·14·0failed11110·0·14·011 / 27__gc_add_region_undersized is a C fixture of mruby's test driver. The GC ratio range: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (e2b4585e4).
hashpassed49000·0·0·0passed49000·0·0·049 / 49
indexerrorpassed1000·0·0·0passed1000·0·0·01 / 1
integerfailed41400·0·0·0failed41400·0·0·041 / 45Integer#% (0 % 0) and the three "redefinition" tests: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (80747a5f6, 35b0428c9, fa3dead08).
iterationspassed4000·0·0·0passed4000·0·0·04 / 4
kernelfailed34360·0·0·0failed39220·0·0·039 / 43TestNotImplement and __iv_set_hidden are C fixtures of mruby's test driver. The respond_to? tests: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (499577695, 49c174a7c).
langpassed2000·0·0·0passed2000·0·0·02 / 2
literalspassed11000·1·0·0passed11000·1·0·011 / 12
localjumperrorpassed1000·0·0·0passed1000·0·0·01 / 1
methodsfailed8040·0·0·0failed8040·0·0·08 / 12def, alias and undef in a method with a receiver and in a class body written as a block: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (the cref commits, e1005cc5f, 7bb8f3836, 8da00e9ba).
modulefailed53840·0·0·0failed53840·0·0·053 / 65One test names TestNotImplement, a C fixture of mruby's test driver. The visibility and the answer of attr_*, the visibility of define_method/class << self, method_defined? with inherit false and for private methods, and the constant lookups (a block given a class, a superclass's constant before the top level's, def self. methods): behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (2dd14996d, 94aa382c3, 5e77136c3, 33163ec59, ff047f5fe, 77d1d928f, 41a0af60a, 143892a37, 01df203a7 and the cref commits).
nameerrorpassed3000·0·0·0passed3000·0·0·03 / 3
nilpassed9000·0·0·0passed9000·0·0·09 / 9
nomethoderrorpassed2000·0·0·0passed2000·0·0·02 / 2
numericpassed58000·0·0·0passed58000·0·0·058 / 58
objectpassed2000·0·0·0passed2000·0·0·02 / 2
platformpassed2000·0·0·0passed2000·0·0·02 / 2
procpassed15000·0·0·0passed15000·0·0·015 / 15
rangefailed20010·0·1·0failed20010·0·1·020 / 22Range#last on an endless range: mruby-range-ext's last raises RangeError, as the reference mruby command does on the same assertion (docs/verification/mrbtest-notes.md).
rangeerrorpassed1000·0·0·0passed1000·0·0·01 / 1
refinementpassed0000·1·0·0passed0000·1·0·00 / 1
regexperrorpassed0000·0·0·0passed0000·0·0·00 / 0
runtimeerrorpassed1000·0·0·0passed1000·0·0·01 / 1
standarderrorpassed1000·0·0·0passed1000·0·0·01 / 1
stringfailed100210·0·0·0failed101200·0·0·0101 / 103Mrbtest.nofree_cstr? is a C fixture of mruby's test driver. "String interpolation asks a class what it spells": behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (ee3cdfdf7).
superclasspassed28000·0·0·0passed28000·0·0·028 / 28
symbolfailed8100·0·1·0failed8100·0·1·08 / 10"Symbol#== redefined on Symbol itself": behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (55ae46dcf).
syntaxruntime error78460·0·0·0failed971580·0·0·097 / 120The file stops at a top-level use of TestNotImplement, a C fixture (runtime_error); the column with C fixtures runs to the end. "pattern matching - a key that moves the subject" also fails with rc2's tests: a deliberate deviation. The defined? tests, the 15-parameter keywords, the deconstruction hooks, the operator visibility and a private setter written by attr_* under private: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's; most of them depend on what 891d1d9d's compiler emits (97ef20933, 9b44d5d56, 9f3a1ccb9, 033109642, b2d2cd15e, 90e568e8e, 2dd14996d, 086637afd).
sysfailfailed0010·0·0·0failed0010·0·0·00 / 1TestSysFail is a C fixture of mruby's test driver.
truepassed6000·0·0·0passed6000·0·0·06 / 6
typeerrorpassed1000·0·0·0passed1000·0·0·01 / 1
unicodepassed3000·0·0·0passed3000·0·0·03 / 3
versionpassed1000·0·0·0passed1000·0·0·01 / 1
vformatfailed0010·0·0·0failed0010·0·0·00 / 1TestVFormat is a C fixture of mruby's test driver.

Asserts

argumenterror.rbSabiRuby passed SabiRuby (with C fixtures) passed9 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
ArgumentErrorpasspass
'wrong number of arguments' from mrb_get_argspasspass
wrong number of argumentspasspass
wrong number of argumentspasspass
wrong number of argumentspasspass
wrong number of argumentspasspass
wrong number of argumentspasspass
wrong number of argumentspasspass
Call to MRB_ARGS_NONE methodpasspass
array.rbSabiRuby failed SabiRuby (with C fixtures) failed64 asserts, 0 with different results · elapsed 0.00s

AryShared is a C fixture of mruby's test driver; neither driver installs it. "Array#[] with a Float index that stands for no Integer": behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (e2148c1b1).

assertSabiRubySabiRuby (with C fixtures)
Arraypasspass
Array included modulespasspass
Array.[]passpass
SubArray.[]passpass
Array#+passpass
Array#*passpass
Array#<<passpass
Array#[]passpass
Array#[] with a Float index that stands for no Integerpasspass
Array#[] redefined on Array itself reaches the redefinitionpasspass
Array#[]= redefined on Array itself reaches the redefinitionpasspass
Array#[]=passpass
Array#clearpasspass
Array#collect!passpass
Array#concatpasspass
Array#delete_atpasspass
Array#eachpasspass
Array#each_indexpasspass
Array#empty?passpass
Array#firstpasspass
Array#indexpasspass
Array#index (block)passpass
Array#initializepasspass
Array#initialize_copypasspass
Array#joinpasspass
Array#join nested arrayspasspass
Array#join detects recursionpasspass
Array#join deeply nested array does not overflow the C stackstress
stress test disabled
stress
stress test disabled
Array#lastpasspass
Array#lengthpasspass
Array#map!passpass
Array#poppasspass
Array#pushpasspass
Array#replacepasspass
Array#reversepasspass
Array#reverse!passpass
Array#rindexpasspass
Array#rindex (block)passpass
Array#shiftpasspass
Array#sizepasspass
Array#slicepasspass
Array#unshiftpasspass
Array#unshift with shared arrayspasspass
Array#unshift taking shared selfpasspass
Array#to_spasspass
Array#==passpass
Array#== takes an element for equal to itselfpasspass
Array#eql?passpass
Array#hashpasspass
Array#<=>passpass
Array (Longish inline array)passpass
Array#rindexpasspass
Array#sort!passpass
Array#sort with a NaN in itpasspass
Array#sort with a block that answers with something other than an Integerpasspass
Array#sort with a block that answers with a Floatpasspass
Array#sort with a block that answers with a big integerpasspass
Array#sort of Integers too wide to store inlinepasspass
Array#freezepasspass
Array - a frozen receiver of a call that writes nothingpasspass
Array#deletepasspass
Array#hash with self-referencing arrayspasspass
Array shared from an emptied heap array keeps a buffererror
uninitialized constant AryShared
error
uninitialized constant AryShared
Array#== and #eql? with recursive elementspasspass
basicobject.rbSabiRuby failed SabiRuby (with C fixtures) failed5 asserts, 0 with different results · elapsed 0.00s

The two BasicObject#== tests: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (55ae46dcf, d8873e7b1).

assertSabiRubySabiRuby (with C fixtures)
BasicObjectpasspass
BasicObject superclasspasspass
BasicObject reopened at the top level is the class Object inherits frompasspass
BasicObject#== defined by a class is asked about the receiver itselffail
expected :own, actual true
expected :own, actual true
expected :base, actual true
expected :single, actual true
expected :aliased, actual true
expected :defined, actual true
expected :mod, actual true
expected :mod, actual true
expected :late, actual true
expected :late, actual true
fail
expected :own, actual true
expected :own, actual true
expected :base, actual true
expected :single, actual true
expected :aliased, actual true
expected :defined, actual true
expected :mod, actual true
expected :mod, actual true
expected :late, actual true
expected :late, actual true
BasicObject#== defined on NilClass, TrueClass or FalseClassfail
expected [:nil_eq, :nil_eq, true, true, false, true, :true_eq, :true_eq, true, true, false, true, :false_eq, :false_eq, true, true, false, true], actual [true, :nil_eq, true, true, false, true, true, :true_eq, true, true, false, true, true, :false_eq, true, true, false, true]
fail
expected [:nil_eq, :nil_eq, true, true, false, true, :true_eq, :true_eq, true, true, false, true, :false_eq, :false_eq, true, true, false, true], actual [true, :nil_eq, true, true, false, true, true, :true_eq, true, true, false, true, true, :false_eq, true, true, false, true]
bs_block.rbSabiRuby passed SabiRuby (with C fixtures) passed46 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
BS Block 1passpass
BS Block 2passpass
BS Block 3passpass
BS Block 3passpass
BS Block 4passpass
BS Block 5passpass
BS Block 6passpass
BS Block 7passpass
BS Block 8passpass
BS Block 9passpass
BS Block 10passpass
BS Block 11passpass
BS Block 12passpass
BS Block 13passpass
BS Block 14passpass
BS Block 15passpass
BS Block 16passpass
BS Block 17passpass
BS Block 18passpass
BS Block 19passpass
BS Block 20passpass
BS Block 21passpass
BS Block 22passpass
BS Block 23passpass
BS Block 24passpass
BS Block 25passpass
BS Block 26passpass
BS Block 27passpass
BS Block 28passpass
BS Block 29passpass
BS Block 30passpass
BS Block [ruby-dev:31147]passpass
BS Block [ruby-dev:31160]passpass
BS Block [issue #750]passpass
BS Block 31passpass
BS Block [ruby-dev:31440]passpass
BS Block 32passpass
BS Block [ruby-core:14395]passpass
BS Block 33passpass
BS Block 34passpass
BS Block 35passpass
BS Block 36passpass
BS Block 37passpass
BS Block 38passpass
BS Block 39passpass
BS Block 40 (https://github.com/mruby/mruby/issues/6411)passpass
bs_literal.rbSabiRuby passed SabiRuby (with C fixtures) passed9 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
BS Literal 1passpass
BS Literal 2passpass
BS Literal 3passpass
BS Literal 4passpass
BS Literal 5passpass
BS Literal 6passpass
BS Literal 7passpass
BS Literal 8passpass
BS Literal 9passpass
class.rbSabiRuby failed SabiRuby (with C fixtures) failed49 asserts, 0 with different results · elapsed 0.00s

"a def in a method written in a block given a class adds to that class": behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (3d0ec2771).

assertSabiRubySabiRuby (with C fixtures)
Classpasspass
Class#initializepasspass
Class#initialize_copypasspass
Class#newpasspass
Class#superclasspasspass
Class 1passpass
Class 2passpass
Class 3passpass
Class 4passpass
Class 5passpass
Class 6passpass
Class 7passpass
Class 8passpass
Class 9passpass
Class Module 1passpass
Class Module 2passpass
Class Nested 1passpass
Class Nested 2passpass
Class Nested 3passpass
Class Nested 4passpass
Class Nested 5passpass
Class Nested 6passpass
Class Nested 7passpass
Class Nested 8passpass
Class Colon 1passpass
Class Colon 2passpass
Class Colon 3passpass
Class Dup 1passpass
Class Dup 2passpass
Class.newpasspass
class to return the last valuepasspass
class to return nil if body is emptypasspass
raise when superclass is not a classpasspass
Class#inheritedpasspass
singleton testspasspass
clone Classpasspass
class definition in singleton classpasspass
class variable and class << self style class methodpasspass
class variable definition in singleton_classpasspass
class variable in module and class << self style class methodpasspass
child class/module defined in singleton class get parent constantpasspass
overriding class variable with a module (#3235)passpass
class variable for frozen class/modulepasspass
class with non-class/module outer raises TypeErrorpasspass
module with extended callbackpasspass
inherited hook runs before block bodypasspass
inherited hook runs before class bodypasspass
a visibility change makes the method table it needspasspass
a `def` in a method written in a block given a class adds to that classfail
from_singleton_body
assertion failed
assertion failed
fail
from_singleton_body
assertion failed
assertion failed
codegen.rbSabiRuby failed SabiRuby (with C fixtures) failed22 asserts, 0 with different results · elapsed 0.00s

"register window of calls (#3783)" expects /static/ to raise NoMethodError, which holds only in a build without Regexp; SabiRuby has mruby-regexp (docs/verification/mrbtest-notes.md).

assertSabiRubySabiRuby (with C fixtures)
peephole optimization does not eliminate move whose result is reusedpasspass
empty condition in ternary expression parses correctlypasspass
method call with exactly 127 argumentspasspass
nested empty heredocpasspass
splat in case splatpasspass
undef with 127 or more argumentspasspass
break in normal loop with 127 argumentspasspass
negate literal register alignmentpasspass
register window of calls (#3783)fail
expected exception, but nothing was raised
assertion failed
expected exception, but nothing was raised
assertion failed
fail
expected exception, but nothing was raised
assertion failed
expected exception, but nothing was raised
assertion failed
bare `nil?` in if/unless uses self as receiver (#6874)passpass
op-assign on empty index does not crash the compilerpasspass
block inside a for body sees its own localspasspass
assignment to a captured local is worth its valuepasspass
multiple assignment to an attribute counts its registerspasspass
a multiple assignment target assigning through a send keeps its valuepasspass
a discarded interpolation leaves the register pointer where it waspasspass
adding or subtracting a literal zero still sends the operatorpasspass
a rescue modifier in a loop body leaves the registers balancedpasspass
super and yield at fifteen nested blockspasspass
multiple assignment with more targets than an operand holdspasspass
multiple assignment with more targets than an operand holds, with a restpasspass
array pattern with more elements than an operand holdspasspass
comparable.rbSabiRuby passed SabiRuby (with C fixtures) passed7 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
Comparable#<passpass
Comparable#<=passpass
Comparable#==passpass
Comparable#>passpass
Comparable#>=passpass
Comparable#between?passpass
Comparable#between? - a comparison with no answerpasspass
ensure.rbSabiRuby passed SabiRuby (with C fixtures) passed6 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
ensure - context - yieldpasspass
ensure - context - yield and breakpasspass
ensure - context - yield and returnpasspass
ensure with local ||= preserves return valuepasspass
ensure with an op-assign of every kind preserves the return valuepasspass
begin with an empty ensure keeps its value in a register of its ownpasspass
enumerable.rbSabiRuby passed SabiRuby (with C fixtures) passed23 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
Enumerablepasspass
Enumerable#all?passpass
Enumerable#any?passpass
Enumerable#collectpasspass
Enumerable#detectpasspass
Array#each_with_indexpasspass
Enumerable#entriespasspass
Enumerable#findpasspass
Enumerable#find_allpasspass
Enumerable#greppasspass
Enumerable#include?passpass
Enumerable#include? takes an element for equal to itselfpasspass
Enumerable#injectpasspass
Enumerable#mappasspass
Enumerable#maxpasspass
Enumerable#minpasspass
Enumerable#member?passpass
Enumerable#partitionpasspass
Enumerable#rejectpasspass
Enumerable#selectpasspass
Enumerable#sortpasspass
Enumerable#to_apasspass
Enumerable#max, #min - a comparison with no answerpasspass
env.rbSabiRuby failed SabiRuby (with C fixtures) failed8 asserts, 0 with different results · elapsed 0.00s

Every assert calls __env_*, C fixtures of mruby's test driver; neither driver installs them. SabiRuby ports two of them (__env_svar?, __env_svar_slot), not the ones these tests call, so the column with C fixtures fails them too.

assertSabiRubySabiRuby (with C fixtures)
REnv, closed env carries no slot until a scope needs oneerror
undefined method '__env_svar?' for Object
error
undefined method '__env_svar_read' for Object
REnv, a live write closes with the slot already madeerror
undefined method '__env_svar_write' for Object
error
undefined method '__env_svar_write' for Object
REnv, C closure env carries no sloterror
undefined method '__env_cfunc_proc' for Object
error
undefined method '__env_cfunc_proc' for Object
REnv, reading special variables leaves a slotless env aloneerror
undefined method '__env_svar_read' for Object
error
undefined method '__env_svar_read' for Object
REnv, the first write grows a slotless env into the sloterror
undefined method '__env_len' for Object
error
undefined method '__env_len' for Object
REnv, a grown env is the one scope both its procs seeerror
undefined method '__env_svar?' for Object
error
undefined method '__env_svar_write' for Object
REnv, the shutdown detach keeps the top-level containererror
undefined method '__env_shutdown_svar' for Object
error
undefined method '__env_shutdown_svar' for Object
REnv, MRB_ENV_SET_BIDX() evaluates its index exactly onceerror
undefined method '__env_set_bidx_eval_count' for Object
error
undefined method '__env_set_bidx_eval_count' for Object
exception.rbSabiRuby failed SabiRuby (with C fixtures) failed39 asserts, 0 with different results · elapsed 0.00s

$! set by the rescue modifier and ensure, and the bare raise that re-raises it: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (b7df80fc4, c05a266a5).

assertSabiRubySabiRuby (with C fixtures)
Exceptionpasspass
Exception.exceptionpasspass
Exception#exceptionpasspass
Exception#messagepasspass
Exception#to_spasspass
Exception.exceptionpasspass
NameErrorpasspass
ScriptErrorpasspass
SyntaxErrorpasspass
Exception 1passpass
Exception 2passpass
Exception 3passpass
Exception 4passpass
Exception 5passpass
Exception 6passpass
Exception 7passpass
Exception 8passpass
Exception 9passpass
Exception 10passpass
Exception 11passpass
Exception 12passpass
Exception 13passpass
Exception 14passpass
Exception 15passpass
Exception 16passpass
Exception 17passpass
Exception 18passpass
Exception 19passpass
Exception#inspectpasspass
Exception#backtracepasspass
Raise in ensurepasspass
GC in rescuepasspass
Method call in rescuepasspass
break value from begin/rescue/ensure in while looppasspass
next inside rescue continues the looppasspass
$! names the exception a rescue clause is runningpasspass
$! names the exception a rescue modifier is runningfail
expected "a", actual ""
fail
expected "a", actual ""
$! names the exception an ensure is unwindingfail
expected "e", actual ""
fail
expected "e", actual ""
raise without arguments re-raises the exception being rescuedfail
expected TypeError, actual RuntimeError
expected "inner", actual ""
expected ArgumentError, actual RuntimeError
expected "through a method", actual ""
fail
expected TypeError, actual RuntimeError
expected "inner", actual ""
expected ArgumentError, actual RuntimeError
expected "through a method", actual ""
false.rbSabiRuby passed SabiRuby (with C fixtures) passed6 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
FalseClasspasspass
FalseClass falsepasspass
FalseClass#&passpass
FalseClass#^passpass
FalseClass#to_spasspass
FalseClass#|passpass
float.rbSabiRuby failed SabiRuby (with C fixtures) failed31 asserts, 0 with different results · elapsed 0.00s

"a NaN is the object it is and no other" also fails with rc2's tests: a deliberate deviation (docs/verification/mrbtest-notes.md). The two "redefined on Float" tests: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (35b0428c9, fa3dead08).

assertSabiRubySabiRuby (with C fixtures)
Floatpasspass
Float#+passpass
Float#-passpass
Float#*passpass
Float#/passpass
Float#quopasspass
Float#%passpass
Float#<=>passpass
Float#==passpass
a NaN is equal to nothing at all, itself includedpasspass
a Float is the object that holds what it holdspasspass
a NaN is the object it is and no otherfail
assertion failed
assertion failed
expected 0, actual nil
assertion failed
assertion failed
fail
assertion failed
assertion failed
expected 0, actual nil
assertion failed
assertion failed
Float comparison with an Integer it cannot holdpasspass
Float comparison with a NaNpasspass
Float#ceilpasspass
Float#finite?passpass
Float#floorpasspass
Float#infinite?passpass
Float#roundpasspass
Float#to_fpasspass
Float#to_ipasspass
Float#truncatepasspass
Float#divmodpasspass
Float#nan?passpass
Float#to_spasspass
Float#inspectpasspass
Float#eql?passpass
Float#abspasspass
Float literal underflowpasspass
Float arithmetic redefined on Float itself reaches the redefinitionfail
expected [:add, 7.5, 2.0], actual 9.5
expected [:sub, 7.5, 2.0], actual 5.5
expected [:mul, 7.5, 2.0], actual 15.0
expected [:div, 7.5, 2.0], actual 3.75
expected [:add, 7.5, 2], actual 9.5
expected [:add, 7.5, 1], actual 8.5
expected [:sub, 7.5, 1], actual 6.5
expected [:add, 7.5, 1], actual 8.5
expected [:sub, 7.5, 1], actual 6.5
fail
expected [:add, 7.5, 2.0], actual 9.5
expected [:sub, 7.5, 2.0], actual 5.5
expected [:mul, 7.5, 2.0], actual 15.0
expected [:div, 7.5, 2.0], actual 3.75
expected [:add, 7.5, 2], actual 9.5
expected [:add, 7.5, 1], actual 8.5
expected [:sub, 7.5, 1], actual 6.5
expected [:add, 7.5, 1], actual 8.5
expected [:sub, 7.5, 1], actual 6.5
Float comparison redefined on Float itself reaches the redefinitionfail
expected [:eq, 7.5, 2.0], actual false
expected [:eq, 7.5, 7.5], actual true
expected [:lt, 7.5, 2.0], actual false
expected [:le, 7.5, 2.0], actual false
expected [:gt, 7.5, 2.0], actual true
expected [:ge, 7.5, 2.0], actual true
expected [:lt, 7.5, 2], actual false
fail
expected [:eq, 7.5, 2.0], actual false
expected [:eq, 7.5, 7.5], actual true
expected [:lt, 7.5, 2.0], actual false
expected [:le, 7.5, 2.0], actual false
expected [:gt, 7.5, 2.0], actual true
expected [:ge, 7.5, 2.0], actual true
expected [:lt, 7.5, 2], actual false
gc.rbSabiRuby failed SabiRuby (with C fixtures) failed27 asserts, 0 with different results · elapsed 0.02s

__gc_add_region_undersized is a C fixture of mruby's test driver. The GC ratio range: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (e2b4585e4).

assertSabiRubySabiRuby (with C fixtures)
GC.enablepasspass
GC.disablepasspass
GC heap region smaller than the alignment paddingerror
undefined method '__gc_add_region_undersized' for Object
error
undefined method '__gc_add_region_undersized' for Object
GC.interval_ratio=passpass
GC.step_ratio=passpass
GC.step_ratio= / GC.interval_ratio= reject an out-of-int-range valuefail
expected exception, but nothing was raised
expected exception, but nothing was raised
fail
expected exception, but nothing was raised
expected exception, but nothing was raised
GC.step_limit=passpass
GC.step_limit - GC completes with small limitpasspass
GC.malloc_threshold=passpass
GC.malloc_threshold - triggers GC on large allocationspasspass
GC.malloc_threshold - byte pressure advances an incremental cyclepasspass
GC.malloc_threshold - does not mark through stale realloc bufferspasspass
GC.generational_mode=passpass
OP_GETIDX does not retain its result in the GC arenastress
stress test disabled
stress
stress test disabled
OP_GETIDX does not retain a Hash default in the GC arenastress
stress test disabled
stress
stress test disabled
OP_GETIDX0 does not retain a String result in the GC arenastress
stress test disabled
stress
stress test disabled
OP_GETIDX0 does not retain a Hash default in the GC arenastress
stress test disabled
stress
stress test disabled
OP_SETIDX does not retain a duplicated Hash key in the GC arenastress
stress test disabled
stress
stress test disabled
OP_ENTER keeps the block alive while it lays out a short argument liststress
stress test disabled
stress
stress test disabled
OP_ADD does not retain an overflowed Integer in the GC arenastress
stress test disabled
stress
stress test disabled
OP_ADD does not retain a boxed Integer in the GC arenastress
stress test disabled
stress
stress test disabled
OP_DIV does not retain a boxed Integer in the GC arenastress
stress test disabled
stress
stress test disabled
OP_LOADI32 does not retain a boxed Integer in the GC arenastress
stress test disabled
stress
stress test disabled
OP_MATH does not retain a boxed Float in the GC arenastress
stress test disabled
stress
stress test disabled
OP_DIV does not retain a boxed Float in the GC arenastress
stress test disabled
stress
stress test disabled
OP_ADDI does not retain a boxed Float in the GC arenastress
stress test disabled
stress
stress test disabled
OP_LOADL does not retain a boxed Float in the GC arenastress
stress test disabled
stress
stress test disabled
hash.rbSabiRuby passed SabiRuby (with C fixtures) passed49 asserts, 0 with different results · elapsed 0.02s
assertSabiRubySabiRuby (with C fixtures)
Hashpasspass
Hash#==passpass
Hash#eql?passpass
Hash#[]passpass
Hash#[]=passpass
Hash#storepasspass
Hash#clearpasspass
Hash#duppasspass
Hash#defaultpasspass
Hash#default=passpass
Hash#default_procpasspass
Hash#deletepasspass
Hash#eachpasspass
Hash#each_keypasspass
Hash#each_valuepasspass
Hash#empty?passpass
Hash#has_key?passpass
Hash#include?passpass
Hash#key?passpass
Hash#member?passpass
Hash#has_value?passpass
Hash#value?passpass
Hash#initializepasspass
Hash#keyspasspass
Hash#valuespasspass
Hash#lengthpasspass
Hash#sizepasspass
Hash#mergepasspass
Hash#replacepasspass
Hash#shiftpasspass
Hash#rejectpasspass
Hash#selectpasspass
Hash#reject!passpass
Hash#select!passpass
Hash#inspectpasspass
Hash#to_spasspass
Hash#rehashpasspass
Hash iteration with entries deleted ahead of the cursorpasspass
Hash lookup with entries deleted by an eql? callbackpasspass
Hash lookup with the matched entry vacated by an eql? callbackpasspass
Hash scans with the matched entry vacated by an eql? callbackpasspass
Hash scans that read the entry back after a callbackpasspass
Hash scans that carry a pair into a set the hash no longer holdspasspass
Hash#assoc, Hash#rassocpasspass
#== receiver should be specified valuepasspass
test value omissionpasspass
Hash#[] and Hash#[]= redefined on Hash itself reach the redefinitionpasspass
Hash#[] with a default proc that grows the VM stackpasspass
Hash#== and #eql? with recursive valuespasspass
indexerror.rbSabiRuby passed SabiRuby (with C fixtures) passed1 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
IndexErrorpasspass
integer.rbSabiRuby failed SabiRuby (with C fixtures) failed45 asserts, 0 with different results · elapsed 0.00s

Integer#% (0 % 0) and the three "redefinition" tests: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (80747a5f6, 35b0428c9, fa3dead08).

assertSabiRubySabiRuby (with C fixtures)
Integerpasspass
Integer#+passpass
Integer#-passpass
Integer#*passpass
Integer#/passpass
Integer#quopasspass
Integer#%fail
expected exception, but nothing was raised
assertion failed
expected exception, but nothing was raised
fail
expected exception, but nothing was raised
assertion failed
expected exception, but nothing was raised
Integer#<=>passpass
Integer#==passpass
Integer comparison with a Float that stands for another numberpasspass
Integer comparison with a NaNpasspass
Integer wider than an mrb_int compared with a NaNpasspass
Integer comparison with a Float at the ends of the mrb_int rangepasspass
Integer comparison of two values too wide to store inlinepasspass
Integer#~passpass
Integer#&passpass
Integer#|passpass
Integer#^passpass
Integer bitwise ops reject non-Integer operandspasspass
Integer#<<passpass
Integer#>>passpass
Integer#ceilpasspass
Integer#ceil keeps a value that is already a multiplepasspass
Integer#downtopasspass
Integer#eql?passpass
Integer#floorpasspass
Integer#floor keeps a value that is already a multiplepasspass
Integer#nextpasspass
Integer#roundpasspass
Integer#round keeps a value that is already a multiplepasspass
Integer#round breaks a tie away from zeropasspass
Integer#succpasspass
Integer#timespasspass
Integer#to_fpasspass
Integer#to_ipasspass
Integer#to_spasspass
Integer#to_s(2) with the smallest Integerpasspass
Integer#truncatepasspass
Integer rounding to a power of ten wider than an mrb_intpasspass
Integer#uptopasspass
Integer#divmodpasspass
Integer.__ensure converts its argument without dispatchingpasspass
Integer arithmetic redefined on Integer itself reaches the redefinitionfail
expected [:add, 7, 2], actual 9
expected [:sub, 7, 2], actual 5
expected [:mul, 7, 2], actual 14
expected [:div, 7, 2], actual 3
expected [:add, 7, 1], actual 8
expected [:sub, 7, 1], actual 6
expected [:add, 7, 1], actual 8
expected [:sub, 7, 1], actual 6
expected [:add, 7, 2.5], actual 9.5
fail
expected [:add, 7, 2], actual 9
expected [:sub, 7, 2], actual 5
expected [:mul, 7, 2], actual 14
expected [:div, 7, 2], actual 3
expected [:add, 7, 1], actual 8
expected [:sub, 7, 1], actual 6
expected [:add, 7, 1], actual 8
expected [:sub, 7, 1], actual 6
expected [:add, 7, 2.5], actual 9.5
Integer comparison redefined on Integer itself reaches the redefinitionfail
expected [:eq, 7, 2], actual false
expected [:eq, 7, 7], actual true
expected [:lt, 7, 2], actual false
expected [:le, 7, 2], actual false
expected [:gt, 7, 2], actual true
expected [:ge, 7, 2], actual true
expected [:lt, 7, 2.5], actual false
fail
expected [:eq, 7, 2], actual false
expected [:eq, 7, 7], actual true
expected [:lt, 7, 2], actual false
expected [:le, 7, 2], actual false
expected [:gt, 7, 2], actual true
expected [:ge, 7, 2], actual true
expected [:lt, 7, 2.5], actual false
Integer operators on two literals reach a redefinitionfail
expected [[:add, 1, 2], [:sub, 5, 3], [:mul, 5, 3], [:div, 6, 3], [:lshift, 1, 2], [:rshift, 8, 1], [:mod, 7, 3], [:and, 6, 3], [:or, 6, 3], [:xor, 6, 3], [:inv, 1]], actual [3, 2, 15, 2, [:lshift, 1, 2], [:rshift, 8, 1], [:mod, 7, 3], [:and, 6, 3], [:or, 6, 3], [:xor, 6, 3], [:inv, 1]]
expected [:add, 7, 1], actual 8
fail
expected [[:add, 1, 2], [:sub, 5, 3], [:mul, 5, 3], [:div, 6, 3], [:lshift, 1, 2], [:rshift, 8, 1], [:mod, 7, 3], [:and, 6, 3], [:or, 6, 3], [:xor, 6, 3], [:inv, 1]], actual [3, 2, 15, 2, [:lshift, 1, 2], [:rshift, 8, 1], [:mod, 7, 3], [:and, 6, 3], [:or, 6, 3], [:xor, 6, 3], [:inv, 1]]
expected [:add, 7, 1], actual 8
iterations.rbSabiRuby passed SabiRuby (with C fixtures) passed4 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
while expressionpasspass
until expressionpasspass
break expressionpasspass
next expressionpasspass
kernel.rbSabiRuby failed SabiRuby (with C fixtures) failed43 asserts, 5 with different results · elapsed 0.00s

TestNotImplement and __iv_set_hidden are C fixtures of mruby's test driver. The respond_to? tests: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (499577695, 49c174a7c).

assertSabiRubySabiRuby (with C fixtures)
Kernelpasspass
Kernel.raisepasspass
Kernel#__id__passpass
Kernel#__send__passpass
Kernel#block_given?passpass
Kernel#classpasspass
Kernel#clonepasspass
Kernel#duppasspass
Kernel#dup classpasspass
Kernel#extendpasspass
Kernel#extend works on toplevelpasspass
Kernel#freezepasspass
Kernel#frozen?passpass
Kernel#hashpasspass
Kernel#inspectpasspass
Kernel#inspect leaves out an ivar Ruby cannot nameerror
undefined method '__iv_set_hidden' for Object
error
undefined method '__iv_set_hidden' for Object
Kernel#inspect survives a callback that grows the object mid-walk (GHSA-j6fq-xj4w-877x)passpass
Kernel#inspect survives a callback that removes an ivar mid-walk (GHSA-j6fq-xj4w-877x)passpass
Kernel#is_a?passpass
Kernel#iterator?passpass
Kernel#kind_of?passpass
Kernel#lambdapasspass
Kernel#looppasspass
Kernel#method_missingpasspass
Kernel#nil?passpass
Kernel#object_idpasspass
Kernel#raisepasspass
Kernel#remove_instance_variablepasspass
Kernel#respond_to?passpass
Kernel#respond_to? with an unimplemented methoderror
uninitialized constant TestNotImplement
pass
Kernel#respond_to? skips respond_to_missing? for an unimplemented methoderror
uninitialized constant TestNotImplement
pass
Kernel#respond_to? weighs how the method may be calledfail
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
fail
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
Kernel#respond_to? leaves a method out of reach to respond_to_missing?fail
expected [:hidden, false], actual nil
assertion failed
expected [:hidden, false], actual nil
fail
expected [:hidden, false], actual nil
assertion failed
expected [:hidden, false], actual nil
Kernel#respond_to? answers false where respond_to_missing? is undefinederror
undefined method 'respond_to_missing?' for RespondToMissingUndefined
error
undefined method 'respond_to_missing?' for RespondToMissingUndefined
an unimplemented method can be overridden, aliased and undefinederror
uninitialized constant TestNotImplement
pass
an unimplemented method reports itself by namefail
assertion failed
pass
mrb_notimplement() raises where there is no method name to reporterror
uninitialized constant TestNotImplement
pass
Kernel#to_spasspass
Kernel#!=passpass
Kernel#!~passpass
Kernel#respond_to_missing?passpass
stack extendpasspass
Kernel module functionspasspass
lang.rbSabiRuby passed SabiRuby (with C fixtures) passed2 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
andpasspass
orpasspass
literals.rbSabiRuby passed SabiRuby (with C fixtures) passed12 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
Literals Numericalpasspass
Literals Numerical without Floatskip
Float is defined
skip
Float is defined
Literals Numerical wider than mrb_intpasspass
Literals Strings Single Quotedpasspass
Literals Strings Double Quotedpasspass
Literals Strings Quoted Non-Expandedpasspass
Literals Strings Quoted Expandedpasspass
Literals Strings Here documentspasspass
Literals Arraypasspass
Literals Array of symbolspasspass
Literals Symbolpasspass
operator override with negative integer literalpasspass
localjumperror.rbSabiRuby passed SabiRuby (with C fixtures) passed1 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
LocalJumpErrorpasspass
methods.rbSabiRuby failed SabiRuby (with C fixtures) failed12 asserts, 0 with different results · elapsed 0.00s

def, alias and undef in a method with a receiver and in a class body written as a block: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (the cref commits, e1005cc5f, 7bb8f3836, 8da00e9ba).

assertSabiRubySabiRuby (with C fixtures)
The alias statementpasspass
The alias statement (overwrite original)passpass
The alias statementpasspass
The undef statementpasspass
The undef statement (method undefined)passpass
method_added hookpasspass
singleton_method_added hookpasspass
The def statement in a method with a receivererror
undefined method 'm' for DefTargetInSingleton
error
undefined method 'm' for DefTargetInSingleton
The def statement in a class body written as a blockerror
undefined method 'm' for #<Class:0x00000000dc80>
error
undefined method 'm' for #<Class:0x00000000de40>
The alias statement in a method with a receivererror
undefined method 'original' for class #<Class:AliasTargetInSingleton>
error
undefined method 'original' for class #<Class:AliasTargetInSingleton>
The undef statement in a method with a receivererror
undefined method 'original' for class '#<Class:UndefTargetInSingleton>'
error
undefined method 'original' for class '#<Class:UndefTargetInSingleton>'
super in a method with a receiverpasspass
module.rbSabiRuby failed SabiRuby (with C fixtures) failed65 asserts, 0 with different results · elapsed 0.01s

One test names TestNotImplement, a C fixture of mruby's test driver. The visibility and the answer of attr_*, the visibility of define_method/class << self, method_defined? with inherit false and for private methods, and the constant lookups (a block given a class, a superclass's constant before the top level's, def self. methods): behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (2dd14996d, 94aa382c3, 5e77136c3, 33163ec59, ff047f5fe, 77d1d928f, 41a0af60a, 143892a37, 01df203a7 and the cref commits).

assertSabiRubySabiRuby (with C fixtures)
Modulepasspass
Module#alias_methodpasspass
Module#ancestorspasspass
Module#attr NameErrorpasspass
Module#attrpasspass
Module#attr_accessorpasspass
Module#attr_readerpasspass
Module#attr_writerpasspass
Module#attr_* answer the names they defineerror
expected [:x, :y], actual nil
expected [:x=], actual nil
expected [:x, :x=, :y, :y=], actual nil
wrong argument type nil (expected Symbol)
error
expected [:x, :y], actual nil
expected [:x=], actual nil
expected [:x, :x=, :y, :y=], actual nil
wrong argument type nil (expected Symbol)
Module#attr_* take the visibility of the scope they are called infail
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
assertion failed
assertion failed
expected exception, but nothing was raised
expected exception, but nothing was raised
fail
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
assertion failed
assertion failed
expected exception, but nothing was raised
expected exception, but nothing was raised
Module#class_evalpasspass
Module#const_defined?passpass
Module#const_getpasspass
Module#const_setpasspass
Module#remove_constpasspass
Module#const_missingpasspass
Module#includepasspass
Module#include?passpass
Module#includedpasspass
Module#initializepasspass
Module#method_defined?passpass
Module#method_defined? reports the methods a listing reportsfail
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
fail
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
Module#method_defined? with inherit false reports only the module's own methodserror
wrong number of arguments (given 2, expected 1)
error
wrong number of arguments (given 2, expected 1)
Module#module_evalpasspass
Module#undef_methodpasspass
Module#duppasspass
Module#define_methodpasspass
Module#define_method takes the visibility of the scope it is called inerror
expected exception, but nothing was raised
expected exception, but nothing was raised
assertion failed
expected exception, but nothing was raised
expected exception, but nothing was raised
undefined method 'mf' for Module
error
expected exception, but nothing was raised
expected exception, but nothing was raised
assertion failed
expected exception, but nothing was raised
expected exception, but nothing was raised
undefined method 'mf' for Module
a `private` in the body of a `class << self` reaches the defs below itfail
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
assertion failed
assertion failed
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
fail
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
assertion failed
assertion failed
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
Module#prependpasspass
Module#prepend resultpasspass
Module#prepend publicpasspass
Module#prepend inheritancepasspass
Module#prepend + Class#ancestorspasspass
Module#prepend + Module#ancestorspasspass
cyclic Module#prependpasspass
Module#prepend each classpasspass
Module#prepend no duplicationpasspass
Module#prepend in superclasspasspass
Module#prepend to frozen classpasspass
Module#prepend leaves a frozen class frozenpasspass
Module#private on a method a prepended module also definespasspass
Module#to_spasspass
Module#inspectpasspass
Issue 1467passpass
clone Modulepasspass
method visibilitypasspass
protected method with an explicit receiverpasspass
method_missing is dispatched regardless of its visibilitypasspass
method visibility with meta programmingpasspass
Module#module_functionpasspass
Module#module_function with no arguments (toggle mode)passpass
module with non-class/module outer raises TypeErrorpasspass
module to return the last valuepasspass
module to return nil if body is emptypasspass
get constant of parent module in singleton class; issue #3568passpass
shared empty iv_tbl (include)passpass
shared empty iv_tbl (prepend)passpass
constant lookup #6506passpass
constant lookup: ancestors before the top levelfail
expected :base, actual :top
expected :base, actual :top
expected :mixin, actual :top
expected :base, actual :top
expected :base, actual :top
fail
expected :base, actual :top
expected :base, actual :top
expected :mixin, actual :top
expected :base, actual :top
expected :base, actual :top
constant lookup: def self.name looks up from the class bodyfail
expected :base, actual :top
expected :base, actual :top
expected exception, but nothing was raised
assertion failed
expected :mixin, actual :top
fail
expected :base, actual :top
expected :base, actual :top
expected exception, but nothing was raised
assertion failed
expected :mixin, actual :top
Module#module_function - where a def in the body landserror
undefined method 'm' for #<Class:0x0000000363c0>
error
undefined method 'm' for #<Class:0x000000036580>
constant lookup: a block given a class to run under keeps its ownfail
expected :lex, actual :recv
expected :lex, actual :recv
fail
expected :lex, actual :recv
expected :lex, actual :recv
constant definition: a block given a class to run under keeps its ownfail
Test4ConstDefDirect
Test4ConstDefDirect
Test4ConstDefNested
Test4ConstDefNested
Test4ConstDefClass
Test4ConstDefClass
Test4ConstDefModule
Test4ConstDefModule
Test4ConstDefClassNew
Test4ConstDefInstance
fail
Test4ConstDefDirect
Test4ConstDefDirect
Test4ConstDefNested
Test4ConstDefNested
Test4ConstDefClass
Test4ConstDefClass
Test4ConstDefModule
Test4ConstDefModule
Test4ConstDefClassNew
Test4ConstDefInstance
constant and class variable lookup: a method written in a block given a class keeps the block's scopefail
expected :lex, actual :recv
expected :written, actual :lex
expected :recv, actual :written
expected :nested, actual :lex
expected :recv, actual :nested
expected :nested, actual :lex
expected :recv, actual :nested
expected exception, but nothing was raised
expected exception, but nothing was raised
fail
expected :lex, actual :recv
expected :written, actual :lex
expected :recv, actual :written
expected :nested, actual :lex
expected :recv, actual :nested
expected :nested, actual :lex
expected :recv, actual :nested
expected exception, but nothing was raised
expected exception, but nothing was raised
nameerror.rbSabiRuby passed SabiRuby (with C fixtures) passed3 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
NameErrorpasspass
NameError#namepasspass
NameError#initializepasspass
nil.rbSabiRuby passed SabiRuby (with C fixtures) passed9 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
NilClasspasspass
NilClasspasspass
NilClass#&passpass
NilClass#^passpass
NilClass#|passpass
NilClass#nil?passpass
NilClass#to_spasspass
NilClass#=~passpass
safe navigationpasspass
nomethoderror.rbSabiRuby passed SabiRuby (with C fixtures) passed2 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
NoMethodErrorpasspass
NoMethodError#argspasspass
numeric.rbSabiRuby passed SabiRuby (with C fixtures) passed58 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
Numericpasspass
Numeric#+@passpass
Numeric#-@passpass
Numeric#abspasspass
Numeric#/passpass
Numeric#**passpass
Numeric#steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
assert_steppasspass
object.rbSabiRuby passed SabiRuby (with C fixtures) passed2 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
Objectpasspass
Object superclasspasspass
platform.rbSabiRuby passed SabiRuby (with C fixtures) passed2 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
MRUBY_PLATFORMpasspass
MRUBY_PLATFORM is a cpu-os pairpasspass
proc.rbSabiRuby passed SabiRuby (with C fixtures) passed15 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
Procpasspass
Proc.newpasspass
Proc#[]passpass
Proc#aritypasspass
Proc#callpasspass
Proc#call proc args pos blockpasspass
Proc#call proc args pos rest postpasspass
Proc#return_does_not_break_selfpasspass
call Proc#initialize if definedpasspass
&obj call to_proc if definedpasspass
Creation of a proc through the block of a methodpasspass
#6345: dup of a block from method is treated as orphanpasspass
identity check for proc objectpasspass
block parameter with trailing comma (implicit rest)passpass
return leaves captured local variables alonepasspass
range.rbSabiRuby failed SabiRuby (with C fixtures) failed22 asserts, 0 with different results · elapsed 0.00s

Range#last on an endless range: mruby-range-ext's last raises RangeError, as the reference mruby command does on the same assertion (docs/verification/mrbtest-notes.md).

assertSabiRubySabiRuby (with C fixtures)
Rangepasspass
Range#==passpass
Range#===passpass
Range#=== with a NaNpasspass
Range#beginpasspass
Range#eachpasspass
Range#endpasspass
Range#exclude_end?passpass
Range#firstpasspass
Range#include?passpass
Range#initializepasspass
Range with a NaN for an endpasspass
Range#lasterror
cannot get the last element of endless range
error
cannot get the last element of endless range
Range#member?passpass
Range#to_spasspass
Range#inspectpasspass
Range#eql?passpass
Range#initialize_copypasspass
Range#hashpasspass
Range#duppasspass
Range#to_apasspass
symbol GC keeps the symbols a Range holdsstress
stress test disabled
stress
stress test disabled
rangeerror.rbSabiRuby passed SabiRuby (with C fixtures) passed1 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
RangeErrorpasspass
refinement.rbSabiRuby passed SabiRuby (with C fixtures) passed1 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
Refinementskip
requires MRB_USE_REFINEMENTS
skip
requires MRB_USE_REFINEMENTS
regexperror.rbSabiRuby passed SabiRuby (with C fixtures) passed0 asserts, 0 with different results · elapsed 0.00s

No assert was reached.

runtimeerror.rbSabiRuby passed SabiRuby (with C fixtures) passed1 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
RuntimeErrorpasspass
standarderror.rbSabiRuby passed SabiRuby (with C fixtures) passed1 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
StandardErrorpasspass
string.rbSabiRuby failed SabiRuby (with C fixtures) failed103 asserts, 1 with different results · elapsed 0.03s

Mrbtest.nofree_cstr? is a C fixture of mruby's test driver. "String interpolation asks a class what it spells": behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (ee3cdfdf7).

assertSabiRubySabiRuby (with C fixtures)
Stringpasspass
RSTRING_CSTR with a non-terminated static stringerror
undefined method 'nofree_cstr?' for Module
pass
String#<=>passpass
String#==passpass
String#+passpass
String#*passpass
String#[]passpass
String#[](UTF-8)passpass
String#[](UTF-8) indexes a byte that spells no character on its ownpasspass
String#[](UTF-8) counts a negative index back from the endpasspass
String#[] with Rangepasspass
String#[] redefined on String itself reaches the redefinitionpasspass
String#+ redefined on String itself reaches the redefinitionfail
expected [:overridden, "hello", " world"], actual "hello world"
expected [:overridden, "a", "b"], actual "ab"
expected [:subclass, "hi", "!"], actual "hi!"
expected [:singleton, "hi", "!"], actual "hi!"
fail
expected [:overridden, "hello", " world"], actual "hello world"
expected [:overridden, "a", "b"], actual "ab"
expected [:subclass, "hi", "!"], actual "hi!"
expected [:singleton, "hi", "!"], actual "hi!"
String#[]= redefined on String itself reaches the redefinitionpasspass
String#[]= answers the same through the opcode and through a sendpasspass
String#[]=passpass
String[]=(UTF-8)passpass
String#[]= on a shared bufferpasspass
String#capitalizepasspass
String#capitalize!passpass
String#capitalize - Unicodepasspass
String#downcase - Unicodepasspass
String case conversion - bytes that spell no characterpasspass
String#upcase - Unicodepasspass
String#upcase - an answer that outgrows an embedded bufferpasspass
String#downcase - a receiver above the embedded bufferpasspass
String case conversion - a frozen receiverpasspass
String case conversion - a receiver sharing its bufferpasspass
String#chomppasspass
String#chomp does not cut inside a characterpasspass
String#chomp!passpass
String#choppasspass
String#chop(UTF-8)passpass
String#chop!passpass
String#chop!(UTF-8)passpass
String#chop! cuts where String#length counts a characterpasspass
String#downcasepasspass
String#downcase!passpass
String#each_linepasspass
String#empty?passpass
String#eql?passpass
String#gsubpasspass
String#gsub with backslashpasspass
String#gsub!passpass
String#hashpasspass
String#include?passpass
String#indexpasspass
String#index over a subject longer than one search wordpasspass
String#index(UTF-8)passpass
String#initializepasspass
String#initialize_copypasspass
String#internpasspass
String#lengthpasspass
String#length(UTF-8)passpass
String#length over every lead bytepasspass
String#length on either side of each bound on the second bytepasspass
String#length leaves what its walk read on the stringpasspass
String#length of a string already read as UTF-8passpass
character indexing of a string already read as UTF-8passpass
String#replacepasspass
String#reversepasspass
String#reverse(UTF-8)passpass
String#reverse!passpass
String#reverse! - a frozen receiverpasspass
String#reverse!(UTF-8) - a frozen receiverpasspass
String - a frozen receiver of an empty splice at the endpasspass
String#reverse!(UTF-8)passpass
String#rindexpasspass
String#rindex(UTF-8)passpass
String#rindex reaches the first character from a negative positionpasspass
String#rindex steps by the characters String#length countspasspass
a byte search refuses an offset inside a characterpasspass
String#byterindex searches bytespasspass
String#sizepasspass
String#size(UTF-8)passpass
String#size(UTF-8) counts invalid sequences per bytepasspass
String#size(UTF-8) counts a broken sequence beside whole characterspasspass
String#slicepasspass
String#splitpasspass
String#split(UTF-8)passpass
String#subpasspass
String#sub with backslashpasspass
String#sub!passpass
String#to_fpasspass
String#to_ipasspass
String#to_spasspass
String#to_sympasspass
String#upcasepasspass
String#upcase!passpass
String#inspectpasspass
String interpolation (mrb_str_concat for shared strings)passpass
String interpolation calls #to_spasspass
String interpolation spells a built-in value itselfpasspass
String interpolation asks a class what it spellsfail
expected "a named", actual "a #<Class:0x00000000c8c0>"
expected "mod", actual "#<Module:0x00000000ce00>"
fail
expected "a named", actual "a #<Class:0x00000000ca80>"
expected "mod", actual "#<Module:0x00000000cfc0>"
String#bytespasspass
String#each_bytepasspass
String#freezepasspass
String literal concatenationpasspass
String#getbytepasspass
String#setbytepasspass
String#byteslicepasspass
String#bytesplicepasspass
String#bytesplice on a shared bufferpasspass
superclass.rbSabiRuby passed SabiRuby (with C fixtures) passed28 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
Direct superclass of Modulepasspass
Direct superclass of Classpasspass
Direct superclass of NilClasspasspass
Direct superclass of TrueClasspasspass
Direct superclass of FalseClasspasspass
Direct superclass of Numericpasspass
Direct superclass of Integerpasspass
Direct superclass of Floatpasspass
Direct superclass of Stringpasspass
Direct superclass of Symbolpasspass
Direct superclass of Arraypasspass
Direct superclass of Hashpasspass
Direct superclass of Rangepasspass
Direct superclass of Procpasspass
Direct superclass of Exceptionpasspass
Direct superclass of StandardErrorpasspass
Direct superclass of ArgumentErrorpasspass
Direct superclass of LocalJumpErrorpasspass
Direct superclass of RangeErrorpasspass
Direct superclass of RegexpErrorpasspass
Direct superclass of RuntimeErrorpasspass
Direct superclass of TypeErrorpasspass
Direct superclass of ZeroDivisionErrorpasspass
Direct superclass of NameErrorpasspass
Direct superclass of NoMethodErrorpasspass
Direct superclass of IndexErrorpasspass
Direct superclass of ScriptErrorpasspass
Direct superclass of SyntaxErrorpasspass
symbol.rbSabiRuby failed SabiRuby (with C fixtures) failed10 asserts, 0 with different results · elapsed 0.00s

"Symbol#== redefined on Symbol itself": behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's (55ae46dcf).

assertSabiRubySabiRuby (with C fixtures)
Symbolpasspass
Symbolpasspass
Symbol#===passpass
Symbol#== redefined on Symbol itself reaches the redefinitionfail
expected [:eq, :abc, :abc], actual true
expected [:eq, :abc, :xyz], actual false
expected [:eq, :abc, "abc"], actual false
fail
expected [:eq, :abc, :abc], actual true
expected [:eq, :abc, :xyz], actual false
expected [:eq, :abc, "abc"], actual false
Symbol#to_spasspass
Symbol#to_sympasspass
Symbol#to_procpasspass
Symbol name round-trips across the inline-packing boundary (issue #6940)passpass
Symbol, empty namepasspass
Symbol#to_s and Symbol#name outlive symbol GCstress
stress test disabled
stress
stress test disabled
syntax.rbSabiRuby runtime error SabiRuby (with C fixtures) failed120 asserts, 32 with different results · elapsed 0.01s

SabiRuby: execution stopped before completion (runtime error). Remaining tests are unevaluated.

The file stops at a top-level use of TestNotImplement, a C fixture (runtime_error); the column with C fixtures runs to the end. "pattern matching - a key that moves the subject" also fails with rc2's tests: a deliberate deviation. The defined? tests, the 15-parameter keywords, the deconstruction hooks, the operator visibility and a private setter written by attr_* under private: behaviour changed on master after the stable branch point (4e2bc5c2b); SabiRuby keeps mruby 4.1.0-rc2's; most of them depend on what 891d1d9d's compiler emits (97ef20933, 9b44d5d56, 9f3a1ccb9, 033109642, b2d2cd15e, 90e568e8e, 2dd14996d, 086637afd).

assertSabiRubySabiRuby (with C fixtures)
__FILE__passpass
__LINE__passpass
superpasspass
super forwards the caller's block from inside a blockpasspass
super forwards the keyword arguments at their current valuespasspass
super forwards from a scope that has closedpasspass
yieldpasspass
yield with keyword argumentspasspass
breakpasspass
next with value from a blockpasspass
safe navigation operator-assignment short-circuits on nilpasspass
a safe navigation call on a written self is madepasspass
local variable or/and-assignment yields its valuepasspass
attribute or/and-assignment persists the write in a value contextpasspass
redopasspass
Abbreviated variable assignmentpasspass
case expressionpasspass
Nested const referencepasspass
Abbreviated variable assignment as returnspasspass
Abbreviated variable assignment of object attributepasspass
Splat and multiple assignmentpasspass
Splat and multiple assignment from variablepasspass
Splat and multiple assignment from variablespasspass
Splat and multiple assignment in forpasspass
Splat without assignmentpasspass
multiple assignment (rest)passpass
multiple assignment (index targets)passpass
multiple assignment (rest+post)passpass
multiple assignment (nosplat array rhs)passpass
multiple assignment (empty array rhs #3236, #3239)passpass
Return values of case statementspasspass
Return values of if and case statementspasspass
Return values of no expression case statementpasspass
splat object in assignmentpasspass
one-line pattern matchpasspass
splat object in case statementpasspass
splat in case statement with a pattern that replaces the arraypasspass
splat in case statementpasspass
External command execution.passpass
parenthesed do-block in cmdargpasspass
method definition in cmdargpasspass
optional argument in the rhs default expressionspasspass
optional block argument in the rhs default expressionspasspass
local variable definition in default value and subsequent argumentspasspass
destructured parameter read from a later default expressionpasspass
multiline comments work correctlypasspass
keyword argumentspasspass
keyword arguments with fifteen or more positional parameterserror
expected [15, 7], actual [15, 1]
expected exception, but nothing was raised
missing keyword: k
error
expected [15, 7], actual [15, 1]
expected exception, but nothing was raised
missing keyword: k
numbered parameterspasspass
numbered parameter after ordinary local (#6921)passpass
_0 is not numbered parameterpasspass
numbered parameters in symbol name (https://github.com/mruby/mruby/issues/5295)passpass
numbered parameters as hash keypasspass
numbered parameters as singletonpasspass
argument forwardingpasspass
endless defpasspass
at-least-once looppasspass
pattern matching - basic case/inpasspass
pattern matching - string literal patternspasspass
pattern matching - array patternspasspass
pattern matching - find patternspasspass
pattern matching - a key that moves the subjectfail
assertion failed
fail
assertion failed
pattern matching - hash patternspasspass
pattern matching - a clause that names `**rest` keeps its own valuepasspass
pattern matching - a capture in a block binds the local of the enclosing scopepasspass
pattern matching - value patterns as a hash valuepasspass
pattern matching - guard clausespasspass
pattern matching - alternative patternspasspass
pattern matching - pin operatorpasspass
pattern matching - as patternpasspass
pattern matching - one-line inpasspass
pattern matching - one-line =>passpass
pattern matching - NoMatchingPatternErrorpasspass
pattern matching - complex patternspasspass
pattern matching - array pattern as the last expression of a framepasspass
pattern matching - find pattern as the last expression of a framepasspass
pattern matching - operators the frame sends rather than answerspasspass
defined? on statically-decidable operandspasspass
defined? on operands resolved at run timepasspass
defined? on global/class variables and superpasspass
defined? on constant paths (A::B)error
nil is not a symbol nor a string
error
nil is not a symbol nor a string
defined? on a constant path of any deptherror
nil is not a symbol nor a string
error
nil is not a symbol nor a string
defined? on a constant path at the length limiterror
nil is not a symbol nor a string
error
nil is not a symbol nor a string
defined? on a constant path rooted at Objecterror
Object is not a symbol nor a string
error
Object is not a symbol nor a string
defined? on a constant path resolves each name as reading it doeserror
nil is not a symbol nor a string
error
nil is not a symbol nor a string
defined? resolves a constant path from an evaluated rootfail
expected "constant", actual nil
expected "constant", actual nil
expected "constant", actual nil
expected 1, actual 0
expected 2, actual 0
expected 2, actual 0
expected "method", actual nil
expected "method", actual nil
fail
expected "constant", actual nil
expected "constant", actual nil
expected "constant", actual nil
expected 1, actual 0
expected 2, actual 0
expected 2, actual 0
expected "method", actual nil
expected "method", actual nil
defined? on a method reached through a receiverfail
expected "method", actual nil
expected "method", actual nil
expected "method", actual nil
expected "method", actual nil
expected "method", actual nil
expected "method", actual nil
expected "method", actual nil
fail
expected "method", actual nil
expected "method", actual nil
expected "method", actual nil
expected "method", actual nil
expected "method", actual nil
expected "method", actual nil
expected "method", actual nil
defined? weighs how a method on a receiver may be calledfail
expected "method", actual nil
expected "method", actual nil
fail
expected "method", actual nil
expected "method", actual nil
defined? asks respond_to? about a call on selfnot reachedfail
expected "method", actual nil
assertion failed
expected "method", actual nil
expected "method", actual nil
assertion failed
assertion failed
defined? on self answers nil where respond_to_missing? or respond_to? is undefinednot reachedfail
expected exception, but nothing was raised
defined? answers nil where evaluating a receiver raisesnot reachedfail
expected [nil, "method"], actual [nil, nil]
expected "method", actual nil
expected 1, actual 0
defined? evaluates each link of a receiver chain oncenot reachedfail
expected "method", actual nil
expected 2, actual 0
expected "method", actual nil
expected 5, actual 0
expected 6, actual 0
expected 7, actual 0
expected "method", actual nil
expected 1, actual nil
expected "method", actual nil
expected [2], actual [0]
defined? weighs the arguments of a callnot reachedfail
expected "method", actual nil
defined? weighs the arguments of a call however they are passednot reachedpass
defined? leaves alone the parts of a call it does not weighnot reachedpass
defined? weighs the elements of an array literalnot reachedpass
defined? weighs the keys and values of a hash literalnot reachedpass
defined? on control flow, jumps and definitionsnot reachedpass
defined? answers with a frozen stringnot reachederror
assertion failed
assertion failed
nil is not a symbol nor a string
defined? on a back reference reads itnot reachedpass
defined? names it a local variablenot reachedfail
expected ["method"], actual [nil]
defined? sees through parentheses around one expressionnot reachedpass
defined? sees through a bare begin around one expressionnot reachedfail
expected "method", actual nil
defined? on a call carrying a blocknot reachedpass
brace-less variable interpolationnot reachedpass
local variable operator-assignment with a non-numeric receivernot reachedpass
pattern matching - the case value survives a failed clausenot reachedpass
pattern matching - the constant of a constant pattern is a test of its ownnot reachedpass
pattern matching - what a pin may namenot reachedpass
pattern matching - the clauses of a case share one deconstructnot reachedpass
pattern matching - a subject with no deconstruction hook does not matchnot reachederror
private method 'deconstruct' called for #<Class:0x00000002a2c0>
pattern matching - a deconstruction hook has to answer a Hashnot reachedfail
assertion failed
assertion failed
assertion failed
assertion failed
assertion failed
a private setter is callable on a written selfnot reachedfail
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
pattern matching - a guard the compiler can answer for itselfnot reachedpass
pattern matching - a guard the compiler can answer for itself, on a hooknot reachedpass
a private index accessor is callable in an op-assign on a written selfnot reachedpass
an operator instruction checks visibility on the send it falls back tonot reachedfail
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
expected exception, but nothing was raised
super reaches a private or protected operatornot reachedfail
expected exception, but nothing was raised
case/in - an alternation after a pattern that compiles to a plain jumpnot reachedpass
case/in - a pattern in parenthesesnot reachedpass
sysfail.rbSabiRuby failed SabiRuby (with C fixtures) failed1 asserts, 0 with different results · elapsed 0.00s

TestSysFail is a C fixture of mruby's test driver.

assertSabiRubySabiRuby (with C fixtures)
mrb_sys_fail without SystemCallErrorerror
uninitialized constant TestSysFail
error
uninitialized constant TestSysFail
true.rbSabiRuby passed SabiRuby (with C fixtures) passed6 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
TrueClasspasspass
TrueClass truepasspass
TrueClass#&passpass
TrueClass#^passpass
TrueClass#to_spasspass
TrueClass#|passpass
typeerror.rbSabiRuby passed SabiRuby (with C fixtures) passed1 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
TypeErrorpasspass
unicode.rbSabiRuby passed SabiRuby (with C fixtures) passed3 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
bare \u notation testpasspass
braced \u notation testpasspass
braced multiple \u notation testpasspass
version.rbSabiRuby passed SabiRuby (with C fixtures) passed1 asserts, 0 with different results · elapsed 0.00s
assertSabiRubySabiRuby (with C fixtures)
MRUBY_REVISIONpasspass
vformat.rbSabiRuby failed SabiRuby (with C fixtures) failed1 asserts, 0 with different results · elapsed 0.00s

TestVFormat is a C fixture of mruby's test driver.

assertSabiRubySabiRuby (with C fixtures)
mrb_vformaterror
uninitialized constant TestVFormat
error
uninitialized constant TestVFormat