Something went wrong. Try again.
🌱 A minimal programming language and compiler. git.urbach.dev/cli/q
high-performance programming-language compiler
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738package exe_test
import ( "testing"
"git.urbach.dev/cli/q/src/exe" "git.urbach.dev/go/assert")
func TestSimple(t *testing.T) { align := 32 x := exe.New(1, align, align, false, false) x.AddSections([]byte{1}, []byte{1}) assert.Equal(t, len(x.Sections), 2) assert.Equal(t, x.Sections[0].Padding, align-1) assert.Equal(t, x.Sections[1].Padding, align-1) assert.Equal(t, x.Sections[0].FileOffset, align) assert.Equal(t, x.Sections[1].FileOffset, align*2) assert.Equal(t, x.Sections[0].MemoryOffset, align) assert.Equal(t, x.Sections[1].MemoryOffset, align*2)}
func TestCongruent(t *testing.T) { fileAlign := 16 memoryAlign := 32 x := exe.New(1, fileAlign, memoryAlign, true, false) x.AddSections([]byte{1}, []byte{1}, []byte{1}) assert.Equal(t, len(x.Sections), 3) assert.Equal(t, x.Sections[0].Padding, fileAlign-1) assert.Equal(t, x.Sections[1].Padding, fileAlign-1) assert.Equal(t, x.Sections[2].Padding, fileAlign-1) assert.Equal(t, x.Sections[0].FileOffset, fileAlign) assert.Equal(t, x.Sections[1].FileOffset, fileAlign*2) assert.Equal(t, x.Sections[2].FileOffset, fileAlign*3) assert.Equal(t, x.Sections[0].MemoryOffset, memoryAlign+(fileAlign%memoryAlign)) assert.Equal(t, x.Sections[1].MemoryOffset, memoryAlign*2+(fileAlign*2%memoryAlign)) assert.Equal(t, x.Sections[2].MemoryOffset, memoryAlign*3+(fileAlign*3%memoryAlign))}