Add source code printout for tests
This commit is contained in:
parent
31cf892a63
commit
01526aa914
|
@ -255,33 +255,21 @@ testString (test,
|
|||
%C = type ptr
|
||||
define void @main() {
|
||||
0:
|
||||
%1 = alloca [1 x i8]
|
||||
%1 = alloca %A
|
||||
%2 = getelementptr [1 x i8], ptr %1, i32 0, i32 0
|
||||
store i8 104, ptr %2
|
||||
%3 = load %A, ptr %1
|
||||
%4 = alloca %A
|
||||
store %A %3, ptr %4
|
||||
%5 = alloca [1 x i8]
|
||||
%6 = getelementptr [1 x i8], ptr %5, i32 0, i32 0
|
||||
store i8 104, ptr %6
|
||||
%7 = alloca %B
|
||||
%8 = getelementptr %B, ptr %7, i32 0, i32 0
|
||||
store ptr %5, ptr %8
|
||||
%9 = getelementptr %B, ptr %7, i32 0, i32 1
|
||||
store %Index 1, ptr %9
|
||||
%10 = load %B, ptr %7
|
||||
%11 = alloca %B
|
||||
store %B %10, ptr %11
|
||||
%12 = alloca [2 x i8]
|
||||
%13 = getelementptr [2 x i8], ptr %12, i32 0, i32 0
|
||||
store i8 104, ptr %13
|
||||
%14 = getelementptr [2 x i8], ptr %12, i32 0, i32 1
|
||||
store i8 0, ptr %14
|
||||
%15 = alloca ptr
|
||||
store ptr %12, ptr %15
|
||||
%16 = load %C, ptr %15
|
||||
%17 = alloca %C
|
||||
store %C %16, ptr %17
|
||||
%3 = alloca %B
|
||||
%4 = getelementptr %B, ptr %3, i32 0, i32 0
|
||||
%5 = getelementptr %B, ptr %3, i32 0, i32 1
|
||||
%6 = alloca [2 x i8]
|
||||
%7 = getelementptr [1 x i8], ptr %6, i32 0, i32 0
|
||||
store i8 104, ptr %7
|
||||
store ptr %6, ptr %4
|
||||
store i32 2, ptr %5
|
||||
%8 = alloca %C
|
||||
%9 = alloca [2 x i8]
|
||||
%10 = getelementptr [1 x i8], ptr %9, i32 0, i32 0
|
||||
store i8 104, ptr %10
|
||||
ret void
|
||||
}
|
||||
`,
|
||||
|
|
|
@ -1,28 +1,21 @@
|
|||
package generator
|
||||
|
||||
import "io"
|
||||
import "fmt"
|
||||
import "testing"
|
||||
import "strings"
|
||||
import "git.tebibyte.media/sashakoshka/fspl/parser"
|
||||
import "git.tebibyte.media/sashakoshka/fspl/analyzer"
|
||||
|
||||
func testString (test *testing.T, correct string, input string) {
|
||||
testReader(test, correct, strings.NewReader(input))
|
||||
}
|
||||
|
||||
func testReader (test *testing.T, correct string, inputs ...io.Reader) {
|
||||
ast := parser.Tree { }
|
||||
for index, stream := range inputs {
|
||||
err := ast.Parse(fmt.Sprintf("stream%d.fspl", index), stream)
|
||||
if err != nil && err != io.EOF{
|
||||
test.Error("parser returned error:", err)
|
||||
return
|
||||
}
|
||||
err := ast.Parse("input.fspl", strings.NewReader(input))
|
||||
if err != nil && err != io.EOF{
|
||||
test.Error("parser returned error:", err)
|
||||
return
|
||||
}
|
||||
|
||||
tree := analyzer.Tree { }
|
||||
err := tree.Analyze(ast)
|
||||
err = tree.Analyze(ast)
|
||||
if err != nil {
|
||||
test.Error("analyzer returned error:", err)
|
||||
return
|
||||
|
@ -78,6 +71,8 @@ func testReader (test *testing.T, correct string, inputs ...io.Reader) {
|
|||
}
|
||||
|
||||
}
|
||||
test.Log("SOURCE FSPL CODE:")
|
||||
test.Log("\033[32m" + input + "\033[0m")
|
||||
test.Fail()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue