Skip to content

Commit 2d9bd94

Browse files
committed
BugFix in axisDescr.go and added some unit tests.
conversionSet was never true and thus maxAxisPoints could never be parsed. This was corrected and several unit tests were added.
1 parent 3796726 commit 2d9bd94

22 files changed

+1117
-12
lines changed

a2l/a2l_test.go

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313

1414
func TestParseFromFile(t *testing.T) {
1515
configureLogger()
16-
zerolog.SetGlobalLevel(zerolog.InfoLevel)
16+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
1717
a2lPath := "testing/ASAP2_Demo_V171_allKeywords.a2l"
1818
startTime := time.Now()
1919
a, err := ParseFromFile(a2lPath)
@@ -28,31 +28,27 @@ func TestParseFromFile(t *testing.T) {
2828

2929
func TestMapify(t *testing.T) {
3030
configureLogger()
31-
zerolog.SetGlobalLevel(zerolog.InfoLevel)
31+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
3232
a2lPath := "testing/ASAP2_Demo_V171_allKeywords.a2l"
3333
a, err := ParseFromFile(a2lPath)
3434
if err != nil {
3535
t.Fatalf("failed parsing with error: %s.", err)
3636
}
3737
startTime := time.Now()
38-
hm, err := a.toHashMap()
38+
_, err = a.toHashMap()
3939
if err != nil {
4040
t.Fatalf("failed to convert a2l struct into hashmap %s.", err)
4141
}
4242
endTime := time.Now()
4343
elapsed := endTime.Sub(startTime)
44-
_, err = fmt.Println(hm)
45-
if err != nil {
46-
log.Err(err).Msg("failed to print hashmap")
47-
t.Fatalf("failed to print a2l struct hashmap %s.", err)
48-
}
44+
4945
log.Info().Str("project name", a.Project.Name).Msg("finished parsing:")
5046
log.Info().Msg("time for parsing a2l test file: " + fmt.Sprint(elapsed.Milliseconds()) + "[ms]")
5147
}
5248

5349
func FuzzParseA2L(f *testing.F) {
5450
configureLogger()
55-
zerolog.SetGlobalLevel(zerolog.WarnLevel)
51+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
5652
a2lPath := "testing/ASAP2_Demo_V171_allKeywords.a2l"
5753
text, _ := readFileToString(a2lPath)
5854
f.Add(text)
@@ -94,7 +90,7 @@ func FuzzParseA2L(f *testing.F) {
9490

9591
func BenchmarkParseFromFile(b *testing.B) {
9692
configureLogger()
97-
zerolog.SetGlobalLevel(zerolog.WarnLevel)
93+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
9894
b.ReportAllocs()
9995
for i := 0; i < b.N; i++ {
10096
a2lPath := "testing/ASAP2_Demo_V171_allKeywords.a2l"

a2l/a2ml_test.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package a2l
2+
3+
import (
4+
"testing"
5+
6+
"github.com/rs/zerolog"
7+
)
8+
9+
//write a unit test for parseA2ML that checks the following:
10+
11+
func TestParseA2ML_Valid(t *testing.T) {
12+
configureLogger()
13+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
14+
// valid a2ml file
15+
tokenList = []string{"/begin A2ML", "1.0", "stuff", "stuff", "stuff", "/end A2ML"}
16+
tok := newTokenGenerator()
17+
_, err := parseA2ML(&tok)
18+
if err != nil {
19+
t.Fatalf("failed parsing with error: %s.", err)
20+
}
21+
}
22+
23+
func TestParseA2ML_Empty(t *testing.T) {
24+
configureLogger()
25+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
26+
// empty a2ml file
27+
tokenList = []string{emptyToken, emptyToken}
28+
tok := newTokenGenerator()
29+
_, err := parseA2ML(&tok)
30+
if err == nil {
31+
t.Fatalf("failed parsing with error: %s.", err)
32+
}
33+
}

a2l/a2ml_version_test.go

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package a2l
2+
3+
import (
4+
"testing"
5+
6+
"github.com/rs/zerolog"
7+
)
8+
9+
//write a unit test for parseA2MLVersion that checks the following:
10+
// - valid a2ml version
11+
// - empty a2ml version
12+
// - invalid a2ml version
13+
// - unexpected token
14+
15+
func TestParseA2MLVersion_Valid(t *testing.T) {
16+
configureLogger()
17+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
18+
// valid a2ml version
19+
tokenList = []string{"1", "0"}
20+
tok := newTokenGenerator()
21+
_, err := parseA2MLVersion(&tok)
22+
if err != nil {
23+
t.Fatalf("failed parsing with error: %s.", err)
24+
}
25+
}
26+
27+
func TestParseA2MLVersion_Empty(t *testing.T) {
28+
configureLogger()
29+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
30+
// empty a2ml version
31+
tokenList = []string{emptyToken}
32+
tok := newTokenGenerator()
33+
_, err := parseA2MLVersion(&tok)
34+
if err == nil {
35+
t.Fatalf("failed test with undetected error: %s.", err)
36+
}
37+
}
38+
39+
func TestParseA2MLVersion_InvalidVersionNumber_1(t *testing.T) {
40+
configureLogger()
41+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
42+
// invalid a2ml version
43+
tokenList = []string{emptyToken, "1", "A"}
44+
tok := newTokenGenerator()
45+
_, err := parseA2MLVersion(&tok)
46+
if err == nil {
47+
t.Fatalf("failed test with undetected error: %s.", err)
48+
}
49+
}
50+
51+
func TestParseA2MLVersion_InvalidVersionNumber_2(t *testing.T) {
52+
configureLogger()
53+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
54+
// invalid a2ml version
55+
tokenList = []string{emptyToken, "Oh Boy", "0"}
56+
tok := newTokenGenerator()
57+
_, err := parseA2MLVersion(&tok)
58+
if err == nil {
59+
t.Fatalf("failed test with undetected error: %s.", err)
60+
}
61+
}
62+
63+
func TestParseA2MLVersion_UnexpectedToken(t *testing.T) {
64+
configureLogger()
65+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
66+
// unexpected token
67+
tokenList = []string{emptyToken, "1", beginAnnotationTextToken}
68+
tok := newTokenGenerator()
69+
_, err := parseA2MLVersion(&tok)
70+
if err == nil {
71+
t.Fatalf("failed test with undetected error: %s.", err)
72+
}
73+
}

a2l/addr_epk_test.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package a2l
2+
3+
import (
4+
"testing"
5+
6+
"github.com/rs/zerolog"
7+
)
8+
9+
//create unit tests for the following functions: parseAddrEpk
10+
// - valid addrEpk
11+
// - empty addrEpk
12+
// - invalid addrEpk
13+
// - unexpected token
14+
15+
func TestParseAddrEpk_Valid(t *testing.T) {
16+
configureLogger()
17+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
18+
// valid addrEpk
19+
tokenList = []string{emptyToken, "0x2000"}
20+
tok := newTokenGenerator()
21+
_, err := parseAddrEpk(&tok)
22+
if err != nil {
23+
t.Fatalf("failed parsing with error: %s.", err)
24+
}
25+
}
26+
27+
func TestParseAddrEpk_Empty(t *testing.T) {
28+
configureLogger()
29+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
30+
// empty addrEpk
31+
tokenList = []string{emptyToken, emptyToken}
32+
tok := newTokenGenerator()
33+
_, err := parseAddrEpk(&tok)
34+
if err == nil {
35+
t.Fatalf("failed test with undetected error: %s.", err)
36+
}
37+
}
38+
39+
func TestParseAddrEpk_UnexpectedKeyword(t *testing.T) {
40+
configureLogger()
41+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
42+
// invalid addrEpk
43+
tokenList = []string{emptyToken, beginA2mlToken}
44+
tok := newTokenGenerator()
45+
_, err := parseAddrEpk(&tok)
46+
if err == nil {
47+
t.Fatalf("failed test with undetected error: %s.", err)
48+
}
49+
}

a2l/alignment_byte_test.go

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package a2l
2+
3+
import (
4+
"testing"
5+
6+
"github.com/rs/zerolog"
7+
)
8+
9+
//create unit tests for the following functions: parseAlignmentByte
10+
// - valid alignmentByte
11+
// - empty alignmentByte
12+
// - invalid alignmentByte
13+
// - unexpected token
14+
15+
func TestParseAlignmentByte_Valid(t *testing.T) {
16+
configureLogger()
17+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
18+
// valid alignmentByte
19+
tokenList = []string{emptyToken, "4"}
20+
tok := newTokenGenerator()
21+
_, err := parseAlignmentByte(&tok)
22+
if err != nil {
23+
t.Fatalf("failed parsing with error: %s.", err)
24+
}
25+
}
26+
27+
func TestParseAlignmentByte_Empty(t *testing.T) {
28+
configureLogger()
29+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
30+
// empty alignmentByte
31+
tokenList = []string{emptyToken, emptyToken}
32+
tok := newTokenGenerator()
33+
_, err := parseAlignmentByte(&tok)
34+
if err == nil {
35+
t.Fatalf("failed test with undetected error: %s.", err)
36+
}
37+
}
38+
39+
func TestParseAlignmentByte_UnexpectedKeyword(t *testing.T) {
40+
configureLogger()
41+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
42+
// invalid alignmentByte
43+
tokenList = []string{emptyToken, beginA2mlToken}
44+
tok := newTokenGenerator()
45+
_, err := parseAlignmentByte(&tok)
46+
if err == nil {
47+
t.Fatalf("failed test with undetected error: %s.", err)
48+
}
49+
}
50+
51+
func TestParseAlignmentByte_Invalid(t *testing.T) {
52+
configureLogger()
53+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
54+
// invalid alignmentByte
55+
tokenList = []string{emptyToken, "9999999999999"}
56+
tok := newTokenGenerator()
57+
_, err := parseAlignmentByte(&tok)
58+
if err == nil {
59+
t.Fatalf("failed test with undetected error: %s.", err)
60+
}
61+
}

a2l/alignment_float16_ieee_test.go

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package a2l
2+
3+
import (
4+
"testing"
5+
6+
"github.com/rs/zerolog"
7+
)
8+
9+
//create unit tests for the following functions: parseAlignmentFloat16Ieee
10+
// - valid alignmentFloat16Ieee
11+
// - empty alignmentFloat16Ieee
12+
// - invalid alignmentFloat16Ieee
13+
// - unexpected token
14+
15+
func TestParseAlignmentFloat16Ieee_Valid(t *testing.T) {
16+
configureLogger()
17+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
18+
// valid alignmentFloat16Ieee
19+
tokenList = []string{emptyToken, "4"}
20+
tok := newTokenGenerator()
21+
_, err := parseAlignmentFloat16Ieee(&tok)
22+
if err != nil {
23+
t.Fatalf("failed parsing with error: %s.", err)
24+
}
25+
}
26+
27+
func TestParseAlignmentFloat16Ieee_Empty(t *testing.T) {
28+
configureLogger()
29+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
30+
// empty alignmentFloat16Ieee
31+
tokenList = []string{emptyToken, emptyToken}
32+
tok := newTokenGenerator()
33+
_, err := parseAlignmentFloat16Ieee(&tok)
34+
if err == nil {
35+
t.Fatalf("failed test with undetected error: %s.", err)
36+
}
37+
}
38+
39+
func TestParseAlignmentFloat16Ieee_UnexpectedKeyword(t *testing.T) {
40+
configureLogger()
41+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
42+
// invalid alignmentFloat16Ieee
43+
tokenList = []string{emptyToken, beginA2mlToken}
44+
tok := newTokenGenerator()
45+
_, err := parseAlignmentFloat16Ieee(&tok)
46+
if err == nil {
47+
t.Fatalf("failed test with undetected error: %s.", err)
48+
}
49+
}
50+
51+
func TestParseAlignmentFloat16Ieee_Invalid(t *testing.T) {
52+
configureLogger()
53+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
54+
// invalid alignmentFloat16Ieee
55+
tokenList = []string{emptyToken, "9999999999999"}
56+
tok := newTokenGenerator()
57+
_, err := parseAlignmentFloat16Ieee(&tok)
58+
if err == nil {
59+
t.Fatalf("failed test with undetected error: %s.", err)
60+
}
61+
}

a2l/alignment_float32_ieee_test.go

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package a2l
2+
3+
import (
4+
"testing"
5+
6+
"github.com/rs/zerolog"
7+
)
8+
9+
//create unit tests for the following functions: parseAlignmentFloat32Ieee
10+
// - valid alignmentFloat32Ieee
11+
// - empty alignmentFloat32Ieee
12+
// - invalid alignmentFloat32Ieee
13+
// - unexpected token
14+
15+
func TestParseAlignmentFloat32Ieee_Valid(t *testing.T) {
16+
configureLogger()
17+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
18+
// valid alignmentFloat32Ieee
19+
tokenList = []string{emptyToken, "4"}
20+
tok := newTokenGenerator()
21+
_, err := parseAlignmentFloat32Ieee(&tok)
22+
if err != nil {
23+
t.Fatalf("failed parsing with error: %s.", err)
24+
}
25+
}
26+
27+
func TestParseAlignmentFloat32Ieee_Empty(t *testing.T) {
28+
configureLogger()
29+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
30+
// empty alignmentFloat32Ieee
31+
tokenList = []string{emptyToken, emptyToken}
32+
tok := newTokenGenerator()
33+
_, err := parseAlignmentFloat32Ieee(&tok)
34+
if err == nil {
35+
t.Fatalf("failed test with undetected error: %s.", err)
36+
}
37+
}
38+
39+
func TestParseAlignmentFloat32Ieee_UnexpectedKeyword(t *testing.T) {
40+
configureLogger()
41+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
42+
// invalid alignmentFloat32Ieee
43+
tokenList = []string{emptyToken, beginA2mlToken}
44+
tok := newTokenGenerator()
45+
_, err := parseAlignmentFloat32Ieee(&tok)
46+
if err == nil {
47+
t.Fatalf("failed test with undetected error: %s.", err)
48+
}
49+
}
50+
51+
func TestParseAlignmentFloat32Ieee_Invalid(t *testing.T) {
52+
configureLogger()
53+
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
54+
// invalid alignmentFloat32Ieee
55+
tokenList = []string{emptyToken, "9999999999999"}
56+
tok := newTokenGenerator()
57+
_, err := parseAlignmentFloat32Ieee(&tok)
58+
if err == nil {
59+
t.Fatalf("failed test with undetected error: %s.", err)
60+
}
61+
}

0 commit comments

Comments
 (0)