# New Ticket Created by  chromatic 
# Please include the string:  [perl #37769]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=37769 >


On Tue, 2005-11-22 at 17:06 -0800, jerry gay wrote:

> i've attached a patch with some modifications to Test::Builder in
> order to fix some bugs, bring it up to the latest calling conventions,
> fix a couple code formatting details, and make it more pir-friendly.
> also in the patch is a test file for Test::Builder's basic operations
> (that's how i found the bugs.)

Thanks, I've applied the patch to Test::Builder as #10188.

I've been using the attached file as a bootstrapping test on my
machines; it's pure PIR and everything passes with your patch.
(Apparently the calling convention changes broke things.)  I didn't
check it in because I wasn't sure where it best fit.  Then I forgot.

I'll try out your Perl test too; right now I'm putting together
Test::More in PIR.

-- c


.sub _main @MAIN
        load_bytecode 'library/Test/Builder/Tester.pir'

        .local int tb_type
        find_type tb_type, 'Test::Builder'

        .local pmc tb_args
        tb_args = new .Hash

        .local pmc test
        test = new tb_type, tb_args

        .local pmc plan
        .local pmc test_pass
        .local pmc test_fail
        .local pmc test_out
        .local pmc test_diag
        .local pmc test_test
        plan      = find_global 'Test::Builder::Tester', 'plan'
        test_pass = find_global 'Test::Builder::Tester', 'test_pass'
        test_fail = find_global 'Test::Builder::Tester', 'test_fail'
        test_out  = find_global 'Test::Builder::Tester', 'test_out'
        test_diag = find_global 'Test::Builder::Tester', 'test_diag'
        test_test = find_global 'Test::Builder::Tester', 'test_test'

        plan( 12 )

        test_out( 'ok 1 - hi' )
        test.'ok'( 1, 'hi' )
        test_test( 'passing test')

        test_out( 'not ok 2 - bye' )
        test.'ok'( 0, 'bye' )
        test_test( 'failing test')

        test_out( 'ok 3 - A message' )
        test_diag( "some\nlines" )
        test.ok( 1, 'A message' )
        test.diag( 'some' )
        test.diag( 'lines' )
        test_test( 'passing test with diagnostics' )

        test_out( 'not ok 4 - another message' )
        test.ok( 0, 'another message' )
        test.diag( "many\nmany\nlines" )
        test_diag( 'many' )
        test_diag( 'many' )
        test_diag( 'lines' )
        test_test( 'failing test with diagnostics' )

        test_out( 'not ok 5 #skip just one skip' )
        test.skip( 1, 'just one skip' )
        test_test( 'single skip' )

        test_out( 'not ok 6 #skip three skips' )
        test_out( 'not ok 7 #skip three skips' )
        test_out( 'not ok 8 #skip three skips' )
        test.skip( 3, 'three skips' )
        test_test( 'multiple skips' )

        test_out( 'not ok 9 # TODO some todo test' )
        test.todo( 0, 'some todo test' )
        test_test( 'failing todo test' )

        test_out( 'ok 10 # TODO another todo test' )
        test.todo( 1, 'another todo test' )
        test_test( 'passing todo test' )

        test_pass()
        test.ok( 1 )
        test_test( 'passing test with no description' )

        test_pass( 'my description' )
        test.ok( 1, 'my description' )
        test_test( 'passing test with a description' )

        test_fail()
        test.ok( 0 )
        test_test( 'failing test with no description' )

        test_fail( 'failing description' )
        test.ok( 0, 'failing description' )
        test_test( 'failing test with description' )

        test.'finish'()
.end

Reply via email to