Skip to content

Commit

Permalink
fbc-tests: update optimizations directory to use SUITE()/TEST()
Browse files Browse the repository at this point in the history
  • Loading branch information
jayrm committed Mar 18, 2018
1 parent bdb87e8 commit 29aace4
Show file tree
Hide file tree
Showing 29 changed files with 18,006 additions and 18,210 deletions.
33 changes: 14 additions & 19 deletions tests/optimizations/addsub.bas
@@ -1,25 +1,20 @@
# include "fbcu.bi"
#include "fbcunit.bi"

#define expr(n) ((n - (n - (n + (n - (n + 1))))))

namespace fbc_tests.optimizations.addsub
SUITE( fbc_tests.optimizations.addsub )

sub test_accum_addsub cdecl( )
dim as integer n = 0
CU_ASSERT_EQUAL( expr(0), -1 )
CU_ASSERT_EQUAL( expr(n), expr(0) )
TEST( constantFoldingExpressions )
dim as integer n = 0
CU_ASSERT_EQUAL( expr(0), -1 )
CU_ASSERT_EQUAL( expr(n), expr(0) )

dim as integer i = 0
CU_ASSERT( (i - (i+1) * 2 + i) = -2 )
i = 10
CU_ASSERT( (i - (i+1) * 2 + i) = -2 )
i = -99
CU_ASSERT( (i - (i+1) * 2 + i) = -2 )
end sub
dim as integer i = 0
CU_ASSERT( (i - (i+1) * 2 + i) = -2 )
i = 10
CU_ASSERT( (i - (i+1) * 2 + i) = -2 )
i = -99
CU_ASSERT( (i - (i+1) * 2 + i) = -2 )
END_TEST

private sub ctor( ) constructor
fbcu.add_suite( "fbc_tests.optimizations.addsub")
fbcu.add_test( "Optimizing constant folding in nested add/subtract expressions", @test_accum_addsub )
end sub

end namespace
END_SUITE
96 changes: 43 additions & 53 deletions tests/optimizations/casting.bas
@@ -1,63 +1,53 @@
# include "fbcu.bi"
#include "fbcunit.bi"

namespace fbc_tests.optimizations.casting
SUITE( fbc_tests.optimizations.casting )

type foo
pad as byte
as integer vi1, vi2
as short vs1, vs2
as byte vb1, vb2
end type

sub test_1 cdecl
dim as integer vi1 = -1, vi2 = 4
CU_ASSERT( cunsg(vi1 * 2) > cunsg(vi2) )

dim as short vs1 = -1, vs2 = 4
CU_ASSERT( cunsg(vs1 * 2) > cunsg(vs2) )

dim as byte vb1 = -1, vb2 = 4
CU_ASSERT( cunsg(vb1 * 2) > cunsg(vb2) )
type foo
pad as byte
as integer vi1, vi2
as short vs1, vs2
as byte vb1, vb2
end type

TEST( variable )
dim as integer vi1 = -1, vi2 = 4
CU_ASSERT( cunsg(vi1 * 2) > cunsg(vi2) )

dim as short vs1 = -1, vs2 = 4
CU_ASSERT( cunsg(vs1 * 2) > cunsg(vs2) )

dim as byte vb1 = -1, vb2 = 4
CU_ASSERT( cunsg(vb1 * 2) > cunsg(vb2) )

END_TEST

TEST( udt )
dim as foo f

end sub
f.vi1 = -1: f.vi2 = 4
CU_ASSERT( cunsg(f.vi1 * 2) > cunsg(f.vi2) )

sub test_2 cdecl
dim as foo f

f.vi1 = -1: f.vi2 = 4
CU_ASSERT( cunsg(f.vi1 * 2) > cunsg(f.vi2) )

f.vs1 = -1: f.vs2 = 4
CU_ASSERT( cunsg(f.vs1 * 2) > cunsg(f.vs2) )

f.vb1 = -1: f.vb2 = 4
CU_ASSERT( cunsg(f.vb1 * 2) > cunsg(f.vb2) )

end sub
f.vs1 = -1: f.vs2 = 4
CU_ASSERT( cunsg(f.vs1 * 2) > cunsg(f.vs2) )

sub test_3 cdecl
dim as foo f
dim as foo ptr pf = @f

f.vi1 = -1: f.vi2 = 4
CU_ASSERT( cunsg(pf->vi1 * 2) > cunsg(pf->vi2) )

f.vs1 = -1: f.vs2 = 4
CU_ASSERT( cunsg(pf->vs1 * 2) > cunsg(pf->vs2) )
f.vb1 = -1: f.vb2 = 4
CU_ASSERT( cunsg(f.vb1 * 2) > cunsg(f.vb2) )

END_TEST

f.vb1 = -1: f.vb2 = 4
CU_ASSERT( cunsg(pf->vb1 * 2) > cunsg(pf->vb2) )
TEST( udt_pointer )
dim as foo f
dim as foo ptr pf = @f

end sub
f.vi1 = -1: f.vi2 = 4
CU_ASSERT( cunsg(pf->vi1 * 2) > cunsg(pf->vi2) )

private sub ctor () constructor

fbcu.add_suite("fbc_tests.optimizations.casting")
fbcu.add_test("#1", @test_1)
fbcu.add_test("#2", @test_2)
fbcu.add_test("#3", @test_3)

end sub
f.vs1 = -1: f.vs2 = 4
CU_ASSERT( cunsg(pf->vs1 * 2) > cunsg(pf->vs2) )

end namespace
f.vb1 = -1: f.vb2 = 4
CU_ASSERT( cunsg(pf->vb1 * 2) > cunsg(pf->vb2) )

END_TEST

END_SUITE

0 comments on commit 29aace4

Please sign in to comment.