This patch adds tests for is<compare> style ops (isgt, isge, isle, islt, iseq, isne) on integers, numbers and strings, in t/op/comp.t. Thanks, Stéphane
PS.: maybe t/op/*.t could be reorganized so that test filenames match what is under ops/*.ops? and t/op would test only I, N, and S stuff, leaving any P (pmc) tests to t/pmc. On Sun, Sep 26, 2004 at 02:40:29AM -0700, Leopold Toetsch wrote: > I've moved these opcodes to ops.num and added some missing variants. > These opcodes need tests.
Index: t/op/comp.t =================================================================== RCS file: /cvs/public/parrot/t/op/comp.t,v retrieving revision 1.7 diff -u -r1.7 comp.t --- t/op/comp.t 1 Oct 2004 21:16:49 -0000 1.7 +++ t/op/comp.t 2 Oct 2004 10:50:50 -0000 @@ -16,7 +16,7 @@ =cut -use Parrot::Test tests => 8; +use Parrot::Test tests => 80; # some of these were failing with JIT/i386 @@ -195,6 +195,1120 @@ ok OUTPUT -1; +output_is(<<'CODE', <<OUTPUT, "isgt_i_i_i"); + set I1, 111 + set I2, 222 + set I3, 333 + isgt I1, I2, I3 + print I1 + set I2, I3 + isgt I1, I2, I3 + print I1 + inc I2 + isgt I1, I2, I3 + print I1 + print "\n" + end +CODE +001 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isgt_i_ic_i"); + set I1, 111 + set I3, 333 + isgt I1, 222, I3 + print I1 + isgt I1, 333, I3 + print I1 + isgt I1, 334, I3 + print I1 + print "\n" + end +CODE +001 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isgt_i_i_ic"); + set I1, 111 + set I2, 222 + isgt I1, I2, 223 + print I1 + isgt I1, I2, 222 + print I1 + isgt I1, I2, 221 + print I1 + print "\n" + end +CODE +001 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isgt_i_ic_ic"); + set I1, 111 + isgt I1, 222, 223 + print I1 + isgt I1, 222, 222 + print I1 + isgt I1, 222, 221 + print I1 + print "\n" + end +CODE +001 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isgt_i_n_n"); + set I1, 111 + set N2, 2.22 + set N3, 3.33 + isgt I1, N2, N3 + print I1 + set N2, N3 + isgt I1, N2, N3 + print I1 + inc N2 + isgt I1, N2, N3 + print I1 + print "\n" + end +CODE +001 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isgt_i_nc_n"); + set I1, 111 + set N3, 3.33 + isgt I1, 2.22, N3 + print I1 + isgt I1, 3.33, N3 + print I1 + isgt I1, 3.34, N3 + print I1 + print "\n" + end +CODE +001 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isgt_i_n_nc"); + set I1, 111 + set N2, 2.22 + isgt I1, N2, 2.23 + print I1 + isgt I1, N2, 2.22 + print I1 + isgt I1, N2, 2.21 + print I1 + print "\n" + end +CODE +001 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isgt_i_nc_nc"); + set I1, 111 + isgt I1, 2.22, 2.23 + print I1 + isgt I1, 2.22, 2.22 + print I1 + isgt I1, 2.22, 2.21 + print I1 + print "\n" + end +CODE +001 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isgt_i_s_s"); + set I1, 111 + set S2, "Aaa" + set S3, "Bbb" + isgt I1, S2, S3 + print I1 + set S2, S3 + isgt I1, S2, S3 + print I1 + set S2, "Ccc" + isgt I1, S2, S3 + print I1 + print "\n" + end +CODE +001 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isgt_i_sc_s"); + set I1, 111 + set S3, "Bbb" + isgt I1, "Aaa", S3 + print I1 + isgt I1, "Bbb", S3 + print I1 + isgt I1, "Ccc", S3 + print I1 + print "\n" + end +CODE +001 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isgt_i_s_sc"); + set I1, 111 + set S2, "Bbb" + isgt I1, S2, "Ccc" + print I1 + isgt I1, S2, "Bbb" + print I1 + isgt I1, S2, "Aaa" + print I1 + print "\n" + end +CODE +001 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isgt_i_sc_sc"); + set I1, 111 + isgt I1, "Bbb", "Ccc" + print I1 + isgt I1, "Bbb", "Bbb" + print I1 + isgt I1, "Bbb", "Aaa" + print I1 + print "\n" + end +CODE +001 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isge_i_i_i"); + set I1, 111 + set I2, 222 + set I3, 333 + isge I1, I2, I3 + print I1 + set I2, I3 + isge I1, I2, I3 + print I1 + inc I2 + isge I1, I2, I3 + print I1 + print "\n" + end +CODE +011 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isge_i_ic_i"); + set I1, 111 + set I3, 333 + isge I1, 222, I3 + print I1 + isge I1, 333, I3 + print I1 + isge I1, 334, I3 + print I1 + print "\n" + end +CODE +011 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isge_i_i_ic"); + set I1, 111 + set I2, 222 + isge I1, I2, 223 + print I1 + isge I1, I2, 222 + print I1 + isge I1, I2, 221 + print I1 + print "\n" + end +CODE +011 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isge_i_ic_ic"); + set I1, 111 + isge I1, 222, 223 + print I1 + isge I1, 222, 222 + print I1 + isge I1, 222, 221 + print I1 + print "\n" + end +CODE +011 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isge_i_n_n"); + set I1, 111 + set N2, 2.22 + set N3, 3.33 + isge I1, N2, N3 + print I1 + set N2, N3 + isge I1, N2, N3 + print I1 + inc N2 + isge I1, N2, N3 + print I1 + print "\n" + end +CODE +011 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isge_i_nc_n"); + set I1, 111 + set N3, 3.33 + isge I1, 2.22, N3 + print I1 + isge I1, 3.33, N3 + print I1 + isge I1, 3.34, N3 + print I1 + print "\n" + end +CODE +011 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isge_i_n_nc"); + set I1, 111 + set N2, 2.22 + isge I1, N2, 2.23 + print I1 + isge I1, N2, 2.22 + print I1 + isge I1, N2, 2.21 + print I1 + print "\n" + end +CODE +011 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isge_i_nc_nc"); + set I1, 111 + isge I1, 2.22, 2.23 + print I1 + isge I1, 2.22, 2.22 + print I1 + isge I1, 2.22, 2.21 + print I1 + print "\n" + end +CODE +011 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isge_i_s_s"); + set I1, 111 + set S2, "Aaa" + set S3, "Bbb" + isge I1, S2, S3 + print I1 + set S2, S3 + isge I1, S2, S3 + print I1 + set S2, "Ccc" + isge I1, S2, S3 + print I1 + print "\n" + end +CODE +011 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isge_i_sc_s"); + set I1, 111 + set S3, "Bbb" + isge I1, "Aaa", S3 + print I1 + isge I1, "Bbb", S3 + print I1 + isge I1, "Ccc", S3 + print I1 + print "\n" + end +CODE +011 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isge_i_s_sc"); + set I1, 111 + set S2, "Bbb" + isge I1, S2, "Ccc" + print I1 + isge I1, S2, "Bbb" + print I1 + isge I1, S2, "Aaa" + print I1 + print "\n" + end +CODE +011 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isge_i_sc_sc"); + set I1, 111 + isge I1, "Bbb", "Ccc" + print I1 + isge I1, "Bbb", "Bbb" + print I1 + isge I1, "Bbb", "Aaa" + print I1 + print "\n" + end +CODE +011 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isle_i_i_i"); + set I1, 111 + set I2, 222 + set I3, 333 + isle I1, I2, I3 + print I1 + set I2, I3 + isle I1, I2, I3 + print I1 + inc I2 + isle I1, I2, I3 + print I1 + print "\n" + end +CODE +110 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isle_i_ic_i"); + set I1, 111 + set I3, 333 + isle I1, 222, I3 + print I1 + isle I1, 333, I3 + print I1 + isle I1, 334, I3 + print I1 + print "\n" + end +CODE +110 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isle_i_i_ic"); + set I1, 111 + set I2, 222 + isle I1, I2, 223 + print I1 + isle I1, I2, 222 + print I1 + isle I1, I2, 221 + print I1 + print "\n" + end +CODE +110 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isle_i_ic_ic"); + set I1, 111 + isle I1, 222, 223 + print I1 + isle I1, 222, 222 + print I1 + isle I1, 222, 221 + print I1 + print "\n" + end +CODE +110 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isle_i_n_n"); + set I1, 111 + set N2, 2.22 + set N3, 3.33 + isle I1, N2, N3 + print I1 + set N2, N3 + isle I1, N2, N3 + print I1 + inc N2 + isle I1, N2, N3 + print I1 + print "\n" + end +CODE +110 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isle_i_nc_n"); + set I1, 111 + set N3, 3.33 + isle I1, 2.22, N3 + print I1 + isle I1, 3.33, N3 + print I1 + isle I1, 3.34, N3 + print I1 + print "\n" + end +CODE +110 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isle_i_n_nc"); + set I1, 111 + set N2, 2.22 + isle I1, N2, 2.23 + print I1 + isle I1, N2, 2.22 + print I1 + isle I1, N2, 2.21 + print I1 + print "\n" + end +CODE +110 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isle_i_nc_nc"); + set I1, 111 + isle I1, 2.22, 2.23 + print I1 + isle I1, 2.22, 2.22 + print I1 + isle I1, 2.22, 2.21 + print I1 + print "\n" + end +CODE +110 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isle_i_s_s"); + set I1, 111 + set S2, "Aaa" + set S3, "Bbb" + isle I1, S2, S3 + print I1 + set S2, S3 + isle I1, S2, S3 + print I1 + set S2, "Ccc" + isle I1, S2, S3 + print I1 + print "\n" + end +CODE +110 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isle_i_sc_s"); + set I1, 111 + set S3, "Bbb" + isle I1, "Aaa", S3 + print I1 + isle I1, "Bbb", S3 + print I1 + isle I1, "Ccc", S3 + print I1 + print "\n" + end +CODE +110 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isle_i_s_sc"); + set I1, 111 + set S2, "Bbb" + isle I1, S2, "Ccc" + print I1 + isle I1, S2, "Bbb" + print I1 + isle I1, S2, "Aaa" + print I1 + print "\n" + end +CODE +110 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isle_i_sc_sc"); + set I1, 111 + isle I1, "Bbb", "Ccc" + print I1 + isle I1, "Bbb", "Bbb" + print I1 + isle I1, "Bbb", "Aaa" + print I1 + print "\n" + end +CODE +110 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "islt_i_i_i"); + set I1, 111 + set I2, 222 + set I3, 333 + islt I1, I2, I3 + print I1 + set I2, I3 + islt I1, I2, I3 + print I1 + inc I2 + islt I1, I2, I3 + print I1 + print "\n" + end +CODE +100 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "islt_i_ic_i"); + set I1, 111 + set I3, 333 + islt I1, 222, I3 + print I1 + islt I1, 333, I3 + print I1 + islt I1, 334, I3 + print I1 + print "\n" + end +CODE +100 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "islt_i_i_ic"); + set I1, 111 + set I2, 222 + islt I1, I2, 223 + print I1 + islt I1, I2, 222 + print I1 + islt I1, I2, 221 + print I1 + print "\n" + end +CODE +100 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "islt_i_ic_ic"); + set I1, 111 + islt I1, 222, 223 + print I1 + islt I1, 222, 222 + print I1 + islt I1, 222, 221 + print I1 + print "\n" + end +CODE +100 +OUTPUT +output_is(<<'CODE', <<OUTPUT, "islt_i_n_n"); + set I1, 111 + set N2, 2.22 + set N3, 3.33 + islt I1, N2, N3 + print I1 + set N2, N3 + islt I1, N2, N3 + print I1 + inc N2 + islt I1, N2, N3 + print I1 + print "\n" + end +CODE +100 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "islt_i_nc_n"); + set I1, 111 + set N3, 3.33 + islt I1, 2.22, N3 + print I1 + islt I1, 3.33, N3 + print I1 + islt I1, 3.34, N3 + print I1 + print "\n" + end +CODE +100 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "islt_i_n_nc"); + set I1, 111 + set N2, 2.22 + islt I1, N2, 2.23 + print I1 + islt I1, N2, 2.22 + print I1 + islt I1, N2, 2.21 + print I1 + print "\n" + end +CODE +100 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "islt_i_nc_nc"); + set I1, 111 + islt I1, 2.22, 2.23 + print I1 + islt I1, 2.22, 2.22 + print I1 + islt I1, 2.22, 2.21 + print I1 + print "\n" + end +CODE +100 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "islt_i_s_s"); + set I1, 111 + set S2, "Aaa" + set S3, "Bbb" + islt I1, S2, S3 + print I1 + set S2, S3 + islt I1, S2, S3 + print I1 + set S2, "Ccc" + islt I1, S2, S3 + print I1 + print "\n" + end +CODE +100 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "islt_i_sc_s"); + set I1, 111 + set S3, "Bbb" + islt I1, "Aaa", S3 + print I1 + islt I1, "Bbb", S3 + print I1 + islt I1, "Ccc", S3 + print I1 + print "\n" + end +CODE +100 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "islt_i_s_sc"); + set I1, 111 + set S2, "Bbb" + islt I1, S2, "Ccc" + print I1 + islt I1, S2, "Bbb" + print I1 + islt I1, S2, "Aaa" + print I1 + print "\n" + end +CODE +100 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "islt_i_sc_sc"); + set I1, 111 + islt I1, "Bbb", "Ccc" + print I1 + islt I1, "Bbb", "Bbb" + print I1 + islt I1, "Bbb", "Aaa" + print I1 + print "\n" + end +CODE +100 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "iseq_i_i_i"); + set I1, 111 + set I2, 222 + set I3, 333 + iseq I1, I2, I3 + print I1 + set I2, I3 + iseq I1, I2, I3 + print I1 + inc I2 + iseq I1, I2, I3 + print I1 + print "\n" + end +CODE +010 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "iseq_i_ic_i"); + set I1, 111 + set I3, 333 + iseq I1, 222, I3 + print I1 + iseq I1, 333, I3 + print I1 + iseq I1, 334, I3 + print I1 + print "\n" + end +CODE +010 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "iseq_i_i_ic"); + set I1, 111 + set I2, 222 + iseq I1, I2, 223 + print I1 + iseq I1, I2, 222 + print I1 + iseq I1, I2, 221 + print I1 + print "\n" + end +CODE +010 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "iseq_i_ic_ic"); + set I1, 111 + iseq I1, 222, 223 + print I1 + iseq I1, 222, 222 + print I1 + iseq I1, 222, 221 + print I1 + print "\n" + end +CODE +010 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "iseq_i_n_n"); + set I1, 111 + set N2, 2.22 + set N3, 3.33 + iseq I1, N2, N3 + print I1 + set N2, N3 + iseq I1, N2, N3 + print I1 + inc N2 + iseq I1, N2, N3 + print I1 + print "\n" + end +CODE +010 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "iseq_i_nc_n"); + set I1, 111 + set N3, 3.33 + iseq I1, 2.22, N3 + print I1 + iseq I1, 3.33, N3 + print I1 + iseq I1, 3.34, N3 + print I1 + print "\n" + end +CODE +010 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "iseq_i_n_nc"); + set I1, 111 + set N2, 2.22 + iseq I1, N2, 2.23 + print I1 + iseq I1, N2, 2.22 + print I1 + iseq I1, N2, 2.21 + print I1 + print "\n" + end +CODE +010 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "iseq_i_nc_nc"); + set I1, 111 + iseq I1, 2.22, 2.23 + print I1 + iseq I1, 2.22, 2.22 + print I1 + iseq I1, 2.22, 2.21 + print I1 + print "\n" + end +CODE +010 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "iseq_i_s_s"); + set I1, 111 + set S2, "Aaa" + set S3, "Bbb" + iseq I1, S2, S3 + print I1 + set S2, S3 + iseq I1, S2, S3 + print I1 + set S2, "Ccc" + iseq I1, S2, S3 + print I1 + print "\n" + end +CODE +010 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "iseq_i_sc_s"); + set I1, 111 + set S3, "Bbb" + iseq I1, "Aaa", S3 + print I1 + iseq I1, "Bbb", S3 + print I1 + iseq I1, "Ccc", S3 + print I1 + print "\n" + end +CODE +010 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "iseq_i_s_sc"); + set I1, 111 + set S2, "Bbb" + iseq I1, S2, "Ccc" + print I1 + iseq I1, S2, "Bbb" + print I1 + iseq I1, S2, "Aaa" + print I1 + print "\n" + end +CODE +010 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "iseq_i_sc_sc"); + set I1, 111 + iseq I1, "Bbb", "Ccc" + print I1 + iseq I1, "Bbb", "Bbb" + print I1 + iseq I1, "Bbb", "Aaa" + print I1 + print "\n" + end +CODE +010 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isne_i_i_i"); + set I1, 111 + set I2, 222 + set I3, 333 + isne I1, I2, I3 + print I1 + set I2, I3 + isne I1, I2, I3 + print I1 + inc I2 + isne I1, I2, I3 + print I1 + print "\n" + end +CODE +101 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isne_i_ic_i"); + set I1, 111 + set I3, 333 + isne I1, 222, I3 + print I1 + isne I1, 333, I3 + print I1 + isne I1, 334, I3 + print I1 + print "\n" + end +CODE +101 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isne_i_i_ic"); + set I1, 111 + set I2, 222 + isne I1, I2, 223 + print I1 + isne I1, I2, 222 + print I1 + isne I1, I2, 221 + print I1 + print "\n" + end +CODE +101 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isne_i_ic_ic"); + set I1, 111 + isne I1, 222, 223 + print I1 + isne I1, 222, 222 + print I1 + isne I1, 222, 221 + print I1 + print "\n" + end +CODE +101 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isne_i_n_n"); + set I1, 111 + set N2, 2.22 + set N3, 3.33 + isne I1, N2, N3 + print I1 + set N2, N3 + isne I1, N2, N3 + print I1 + inc N2 + isne I1, N2, N3 + print I1 + print "\n" + end +CODE +101 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isne_i_nc_n"); + set I1, 111 + set N3, 3.33 + isne I1, 2.22, N3 + print I1 + isne I1, 3.33, N3 + print I1 + isne I1, 3.34, N3 + print I1 + print "\n" + end +CODE +101 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isne_i_n_nc"); + set I1, 111 + set N2, 2.22 + isne I1, N2, 2.23 + print I1 + isne I1, N2, 2.22 + print I1 + isne I1, N2, 2.21 + print I1 + print "\n" + end +CODE +101 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isne_i_nc_nc"); + set I1, 111 + isne I1, 2.22, 2.23 + print I1 + isne I1, 2.22, 2.22 + print I1 + isne I1, 2.22, 2.21 + print I1 + print "\n" + end +CODE +101 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isne_i_s_s"); + set I1, 111 + set S2, "Aaa" + set S3, "Bbb" + isne I1, S2, S3 + print I1 + set S2, S3 + isne I1, S2, S3 + print I1 + set S2, "Ccc" + isne I1, S2, S3 + print I1 + print "\n" + end +CODE +101 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isne_i_sc_s"); + set I1, 111 + set S3, "Bbb" + isne I1, "Aaa", S3 + print I1 + isne I1, "Bbb", S3 + print I1 + isne I1, "Ccc", S3 + print I1 + print "\n" + end +CODE +101 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isne_i_s_sc"); + set I1, 111 + set S2, "Bbb" + isne I1, S2, "Ccc" + print I1 + isne I1, S2, "Bbb" + print I1 + isne I1, S2, "Aaa" + print I1 + print "\n" + end +CODE +101 +OUTPUT + +output_is(<<'CODE', <<OUTPUT, "isne_i_sc_sc"); + set I1, 111 + isne I1, "Bbb", "Ccc" + print I1 + isne I1, "Bbb", "Bbb" + print I1 + isne I1, "Bbb", "Aaa" + print I1 + print "\n" + end +CODE +101 +OUTPUT +1;