diff --git a/race.log b/race.log new file mode 100644 index 0000000..87738a5 --- /dev/null +++ b/race.log @@ -0,0 +1,275 @@ +mkdir -p "/home/ndumas/work/wikilink-parser/reports" +mkdir -p "/home/ndumas/work/wikilink-parser/dist" +go clean code.ndumas.com/ndumas/wikilink-parser +rm -vrf "/home/ndumas/work/wikilink-parser/dist"/* +rm -vf "/home/ndumas/work/wikilink-parser/reports"/* +removed '/home/ndumas/work/wikilink-parser/reports/test.out' +go get -d -t code.ndumas.com/ndumas/wikilink-parser/... +go install golang.org/x/tools/cmd/stringer@latest +go generate +go test -race -v -tags "release" $(go list "code.ndumas.com/ndumas/wikilink-parser/..." | grep -v /vendor/) | tee "/home/ndumas/work/wikilink-parser/reports/test.out" +=== RUN Test_Lexer +=== RUN Test_Lexer/wikilink +2023/07/01 18:25:42 lexText +2023/07/01 18:25:42 lexOpenLink +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":2,"width":0,"item":"ItemOpenLink:\"[[\""} +2023/07/01 18:25:42 lexIdent +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":10,"width":1,"item":"ItemIdent:\"wikilink\""} +2023/07/01 18:25:42 lexCloseLink +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":12,"width":1,"item":"ItemCloseLink:\"]]\""} +=== RUN Test_Lexer/wikilink|display_name +2023/07/01 18:25:42 lexText +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":12,"width":0,"item":"ItemText:\"\""} +2023/07/01 18:25:42 lexText +2023/07/01 18:25:42 lexOpenLink +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":2,"width":0,"item":"ItemOpenLink:\"[[\""} +2023/07/01 18:25:42 lexIdent +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":10,"width":1,"item":"ItemIdent:\"wikilink\""} +2023/07/01 18:25:42 lexAlias +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":11,"width":1,"item":"ItemAlias:\"|\""} +2023/07/01 18:25:42 lexIdent +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":23,"width":1,"item":"ItemIdent:\"display name\""} +2023/07/01 18:25:42 lexCloseLink +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":25,"width":1,"item":"ItemCloseLink:\"]]\""} +=== RUN Test_Lexer/wikilink|display_name|second_pipe +2023/07/01 18:25:42 lexText +2023/07/01 18:25:42 lexOpenLink +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":2,"width":0,"item":"ItemOpenLink:\"[[\""} +2023/07/01 18:25:42 lexIdent +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":10,"width":1,"item":"ItemIdent:\"wikilink\""} +2023/07/01 18:25:42 lexAlias +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":11,"width":1,"item":"ItemAlias:\"|\""} +2023/07/01 18:25:42 lexIdent +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":23,"width":1,"item":"ItemIdent:\"display name\""} +2023/07/01 18:25:42 lexText +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":25,"width":0,"item":"ItemText:\"\""} +2023/07/01 18:25:42 lexAlias +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":24,"width":1,"item":"ItemAlias:\"|\""} +2023/07/01 18:25:42 lexIdent +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":35,"width":1,"item":"ItemIdent:\"second pipe\""} +2023/07/01 18:25:42 lexCloseLink +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":37,"width":1,"item":"ItemCloseLink:\"]]\""} +=== RUN Test_Lexer/wikilink_with_numeric_alias|420|second_pipe +2023/07/01 18:25:42 lexText +2023/07/01 18:25:42 lexOpenLink +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":2,"width":0,"item":"ItemOpenLink:\"[[\""} +2023/07/01 18:25:42 lexIdent +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":10,"width":1,"item":"ItemIdent:\"wikilink\""} +2023/07/01 18:25:42 lexAlias +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":11,"width":1,"item":"ItemAlias:\"|\""} +2023/07/01 18:25:42 lexIdent +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":14,"width":1,"item":"ItemIdent:\"420\""} +2023/07/01 18:25:42 lexAlias +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":15,"width":1,"item":"ItemAlias:\"|\""} +2023/07/01 18:25:42 lexIdent +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":26,"width":1,"item":"ItemIdent:\"second pipe\""} +2023/07/01 18:25:42 lexCloseLink +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":28,"width":1,"item":"ItemCloseLink:\"]]\""} +=== RUN Test_Lexer/wikilink_with_spaces_in_filename +2023/07/01 18:25:42 lexText +2023/07/01 18:25:42 lexOpenLink +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":2,"width":0,"item":"ItemOpenLink:\"[[\""} +2023/07/01 18:25:42 lexIdent +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":17,"width":1,"item":"ItemIdent:\"wikilink spaces\""} +2023/07/01 18:25:42 lexCloseLink +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":19,"width":1,"item":"ItemCloseLink:\"]]\""} +=== RUN Test_Lexer/#heading +2023/07/01 18:25:42 lexText +2023/07/01 18:25:42 lexOpenLink +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":2,"width":0,"item":"ItemOpenLink:\"[[\""} +2023/07/01 18:25:42 lexIdent +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":10,"width":1,"item":"ItemIdent:\"#heading\""} + lexer_test.go:100: expected Type ItemHeading, received ItemIdent + lexer_test.go:105: expected Value "#", received "#heading" +2023/07/01 18:25:42 lexCloseLink +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":12,"width":1,"item":"ItemCloseLink:\"]]\""} + lexer_test.go:100: expected Type ItemIdent, received ItemCloseLink + lexer_test.go:105: expected Value "heading", received "]]" +2023/07/01 18:25:42 lexText +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":12,"width":0,"item":"ItemText:\"\""} + lexer_test.go:100: expected Type ItemCloseLink, received ItemText + lexer_test.go:105: expected Value "]]", received "" +=== RUN Test_Lexer/wikilink#heading +2023/07/01 18:25:42 lexText +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":37,"width":0,"item":"ItemText:\"\""} +2023/07/01 18:25:42 lexText +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":28,"width":0,"item":"ItemText:\"\""} +2023/07/01 18:25:42 lexText +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":19,"width":0,"item":"ItemText:\"\""} +2023/07/01 18:25:42 lexText +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":12,"width":0,"item":"ItemText:\"\""} +2023/07/01 18:25:42 lexText +2023/07/01 18:25:42 lexOpenLink +2023/07/01 18:25:42 lexText +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":2,"width":0,"item":"ItemOpenLink:\"[[\""} +2023/07/01 18:25:42 lexIdent +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":10,"width":1,"item":"ItemIdent:\"wikilink\""} +================== +WARNING: DATA RACE +Read at 0x00c0000822b0 by goroutine 21: + code.ndumas.com/ndumas/wikilink-parser.lexText() + /home/ndumas/work/wikilink-parser/states.go:82 +0x69 + code.ndumas.com/ndumas/wikilink-parser.(*Lexer).run() + /home/ndumas/work/wikilink-parser/lexer.go:149 +0x3a + code.ndumas.com/ndumas/wikilink-parser.Lex.func1() + /home/ndumas/work/wikilink-parser/lexer.go:45 +0x39 + +Previous write at 0x00c0000822b0 by goroutine 20: + code.ndumas.com/ndumas/wikilink-parser.lexOpenLink() + /home/ndumas/work/wikilink-parser/states.go:96 +0x86 + code.ndumas.com/ndumas/wikilink-parser.(*Lexer).NextItem() + /home/ndumas/work/wikilink-parser/lexer.go:64 +0xd5 + code.ndumas.com/ndumas/wikilink-parser_test.Test_Lexer.func1() + /home/ndumas/work/wikilink-parser/lexer_test.go:98 +0x18c + testing.tRunner() + /usr/lib/golang/src/testing/testing.go:1446 +0x216 + testing.(*T).Run.func1() + /usr/lib/golang/src/testing/testing.go:1493 +0x47 + +Goroutine 21 (running) created at: + code.ndumas.com/ndumas/wikilink-parser.Lex() + /home/ndumas/work/wikilink-parser/lexer.go:45 +0x41a + code.ndumas.com/ndumas/wikilink-parser_test.Test_Lexer.func1() + /home/ndumas/work/wikilink-parser/lexer_test.go:95 +0x69 + testing.tRunner() + /usr/lib/golang/src/testing/testing.go:1446 +0x216 + testing.(*T).Run.func1() + /usr/lib/golang/src/testing/testing.go:1493 +0x47 + +Goroutine 20 (running) created at: + testing.(*T).Run() + /usr/lib/golang/src/testing/testing.go:1493 +0x75d + code.ndumas.com/ndumas/wikilink-parser_test.Test_Lexer() + /home/ndumas/work/wikilink-parser/lexer_test.go:93 +0x1086 + testing.tRunner() + /usr/lib/golang/src/testing/testing.go:1446 +0x216 + testing.(*T).Run.func1() + /usr/lib/golang/src/testing/testing.go:1493 +0x47 +================== +================== +WARNING: DATA RACE +Write at 0x00c0000822b8 by goroutine 21: + code.ndumas.com/ndumas/wikilink-parser.(*Lexer).next() + /home/ndumas/work/wikilink-parser/lexer.go:142 +0xe8 + code.ndumas.com/ndumas/wikilink-parser.lexText() + /home/ndumas/work/wikilink-parser/states.go:85 +0xc4 + code.ndumas.com/ndumas/wikilink-parser.(*Lexer).run() + /home/ndumas/work/wikilink-parser/lexer.go:149 +0x3a + code.ndumas.com/ndumas/wikilink-parser.Lex.func1() + /home/ndumas/work/wikilink-parser/lexer.go:45 +0x39 + +Previous write at 0x00c0000822b8 by goroutine 20: + code.ndumas.com/ndumas/wikilink-parser.(*Lexer).next() + /home/ndumas/work/wikilink-parser/lexer.go:142 +0xe8 + code.ndumas.com/ndumas/wikilink-parser.lexIdent() + /home/ndumas/work/wikilink-parser/states.go:31 +0x64 + code.ndumas.com/ndumas/wikilink-parser.(*Lexer).NextItem() + /home/ndumas/work/wikilink-parser/lexer.go:64 +0xd5 + code.ndumas.com/ndumas/wikilink-parser_test.Test_Lexer.func1() + /home/ndumas/work/wikilink-parser/lexer_test.go:98 +0x18c + testing.tRunner() + /usr/lib/golang/src/testing/testing.go:1446 +0x216 + testing.(*T).Run.func1() + /usr/lib/golang/src/testing/testing.go:1493 +0x47 + +Goroutine 21 (running) created at: + code.ndumas.com/ndumas/wikilink-parser.Lex() + /home/ndumas/work/wikilink-parser/lexer.go:45 +0x41a + code.ndumas.com/ndumas/wikilink-parser_test.Test_Lexer.func1() + /home/ndumas/work/wikilink-parser/lexer_test.go:95 +0x69 + testing.tRunner() + /usr/lib/golang/src/testing/testing.go:1446 +0x216 + testing.(*T).Run.func1() + /usr/lib/golang/src/testing/testing.go:1493 +0x47 + +Goroutine 20 (running) created at: + testing.(*T).Run() + /usr/lib/golang/src/testing/testing.go:1493 +0x75d + code.ndumas.com/ndumas/wikilink-parser_test.Test_Lexer() + /home/ndumas/work/wikilink-parser/lexer_test.go:93 +0x1086 + testing.tRunner() + /usr/lib/golang/src/testing/testing.go:1446 +0x216 + testing.(*T).Run.func1() + /usr/lib/golang/src/testing/testing.go:1493 +0x47 +================== +================== +WARNING: DATA RACE +Read at 0x00c0000822a8 by goroutine 21: + code.ndumas.com/ndumas/wikilink-parser.(*Lexer).emit() + /home/ndumas/work/wikilink-parser/lexer.go:109 +0x64 + code.ndumas.com/ndumas/wikilink-parser.lexText() + /home/ndumas/work/wikilink-parser/states.go:88 +0xf4 + code.ndumas.com/ndumas/wikilink-parser.(*Lexer).run() + /home/ndumas/work/wikilink-parser/lexer.go:149 +0x3a + code.ndumas.com/ndumas/wikilink-parser.Lex.func1() + /home/ndumas/work/wikilink-parser/lexer.go:45 +0x39 + +Previous write at 0x00c0000822a8 by goroutine 20: + code.ndumas.com/ndumas/wikilink-parser.(*Lexer).emit() + /home/ndumas/work/wikilink-parser/lexer.go:119 +0x4cf + code.ndumas.com/ndumas/wikilink-parser.lexOpenLink() + /home/ndumas/work/wikilink-parser/states.go:97 +0xa4 + code.ndumas.com/ndumas/wikilink-parser.(*Lexer).NextItem() + /home/ndumas/work/wikilink-parser/lexer.go:64 +0xd5 + code.ndumas.com/ndumas/wikilink-parser_test.Test_Lexer.func1() + /home/ndumas/work/wikilink-parser/lexer_test.go:98 +0x18c + testing.tRunner() + /usr/lib/golang/src/testing/testing.go:1446 +0x216 + testing.(*T).Run.func1() + /usr/lib/golang/src/testing/testing.go:1493 +0x47 + +Goroutine 21 (running) created at: + code.ndumas.com/ndumas/wikilink-parser.Lex() + /home/ndumas/work/wikilink-parser/lexer.go:45 +0x41a + code.ndumas.com/ndumas/wikilink-parser_test.Test_Lexer.func1() + /home/ndumas/work/wikilink-parser/lexer_test.go:95 +0x69 + testing.tRunner() + /usr/lib/golang/src/testing/testing.go:1446 +0x216 + testing.(*T).Run.func1() + /usr/lib/golang/src/testing/testing.go:1493 +0x47 + +Goroutine 20 (running) created at: + testing.(*T).Run() + /usr/lib/golang/src/testing/testing.go:1493 +0x75d + code.ndumas.com/ndumas/wikilink-parser_test.Test_Lexer() + /home/ndumas/work/wikilink-parser/lexer_test.go:93 +0x1086 + testing.tRunner() + /usr/lib/golang/src/testing/testing.go:1446 +0x216 + testing.(*T).Run.func1() + /usr/lib/golang/src/testing/testing.go:1493 +0x47 +================== +2023/07/01 18:25:42 lexHeading +{"level":"debug","logger":"lexer.emit","msg":"emitting item","pos":20,"width":0,"item":"ItemText:\"wikilink#heading]]\""} + testing.go:1319: race detected during execution of test +--- FAIL: Test_Lexer (0.01s) + --- PASS: Test_Lexer/wikilink (0.00s) + --- PASS: Test_Lexer/wikilink|display_name (0.00s) + --- PASS: Test_Lexer/wikilink|display_name|second_pipe (0.00s) + --- PASS: Test_Lexer/wikilink_with_numeric_alias|420|second_pipe (0.00s) + --- PASS: Test_Lexer/wikilink_with_spaces_in_filename (0.00s) + --- FAIL: Test_Lexer/#heading (0.00s) + --- FAIL: Test_Lexer/wikilink#heading (0.00s) +panic: runtime error: slice bounds out of range [:21] with length 20 [recovered] + panic: runtime error: slice bounds out of range [:21] with length 20 + +goroutine 34 [running]: +testing.tRunner.func1.2({0x6e8160, 0xc0000e20a8}) + /usr/lib/golang/src/testing/testing.go:1396 +0x372 +testing.tRunner.func1() + /usr/lib/golang/src/testing/testing.go:1399 +0x5f0 +panic({0x6e8160, 0xc0000e20a8}) + /usr/lib/golang/src/runtime/panic.go:890 +0x262 +code.ndumas.com/ndumas/wikilink-parser.(*Lexer).emit(0xc000082280, 0x5) + /home/ndumas/work/wikilink-parser/lexer.go:109 +0x506 +code.ndumas.com/ndumas/wikilink-parser.lexHeading(0xc000082280) + /home/ndumas/work/wikilink-parser/states.go:58 +0xa5 +code.ndumas.com/ndumas/wikilink-parser.(*Lexer).NextItem(0xc000082280) + /home/ndumas/work/wikilink-parser/lexer.go:64 +0xd6 +code.ndumas.com/ndumas/wikilink-parser_test.Test_Lexer.func1(0xc000190b60) + /home/ndumas/work/wikilink-parser/lexer_test.go:98 +0x18d +testing.tRunner(0xc000190b60, 0xc00019cb40) + /usr/lib/golang/src/testing/testing.go:1446 +0x217 +created by testing.(*T).Run + /usr/lib/golang/src/testing/testing.go:1493 +0x75e +FAIL code.ndumas.com/ndumas/wikilink-parser 0.024s +FAIL