SECTION "TEST"


GET "LIBHDR"
GET "RINGHDR"
GET "BCPL.RINGMAP"
GET "bcpl.readstring"


LET start()  BE
$(
    LET bscb  =  0

    rcvopen( 20, 0, @bscb )

    $(  //  Repeat loop to work for ever.

        WHILE  bscb = 0  DO  nextco()

        cocreate( main, 500, bscb )

        bscb  :=  0
    $)
    REPEAT
$)



AND main( cobase, bscb )  BE
$(
    LET vtp.i    =  makevtp( bscb )
    LET vtp.o    =  result2

    IF  vtp.i = 0  THEN  RETURN

    selectinput( vtp.i )
    selectoutput( vtp.o )

    writes( "Evening all!*N*N" )

    $(  //  Repeat loop to test map calling.
    
        LET name     =  VEC 20/bytesperword
        LET fdomain  =  VEC 20/bytesperword
        LET tdomain  =  VEC 20/bytesperword

        LET result   =  VEC 64/bytesperword
        
        UNLESS  readstring( "Name:  ", name, 20 )     DO  BREAK
        UNLESS  readstring( "From:  ", fdomain, 20 )  DO  BREAK
        UNLESS  readstring( "To:    ", tdomain, 20 )  DO  BREAK

        TEST  ringmap( name, fdomain, tdomain, result, 64 )  THEN
              writef( "Mapping %S from %S to %S gave *"%S*"*N",
                       name, fdomain, tdomain, result )
                     
        ELSE  writef( "Map failed, RC=%N*N", result2 )

        newline()
    $)
    REPEAT

    endread()
$)


