Skip to content

Commit 49c3174

Browse files
author
Ivan Dlugos
committed
comparison test fix
1 parent c277b6d commit 49c3174

4 files changed

Lines changed: 22 additions & 17 deletions

File tree

internal/generator/c/cgenerator.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ func (gen *CGenerator) ModelFile(forFile string, options generator.Options) stri
6262

6363
func (CGenerator) IsGeneratedFile(file string) bool {
6464
var name = filepath.Base(file)
65-
return name == "objectbox-model.h" || strings.HasSuffix(name, ".obx.h")
65+
return name == "objectbox-model.h" ||
66+
strings.HasSuffix(name, ".obx.h") ||
67+
strings.HasSuffix(name, ".obx.cpp")
6668
}
6769

6870
func (gen *CGenerator) ParseSource(sourceFile string) (*model.ModelInfo, error) {

test/comparison/conf.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@ type testHelper interface {
4646
type testSpec struct {
4747
targetLang string
4848
sourceExt string
49-
generatedExt string
49+
generatedExt []string
5050
generator generator.CodeGenerator
5151
helper testHelper
5252
}
5353

5454
var confs = map[string]testSpec{
55-
"fbs-c": {"c", ".fbs", ".obx.h", &cgenerator.CGenerator{PlainC: true}, &cTestHelper{cpp: false}},
56-
"fbs-cpp": {"cpp", ".fbs", "-cpp.obx.h", &cgenerator.CGenerator{PlainC: false}, &cTestHelper{cpp: true}},
57-
"go": {"go", ".go", ".obx.go", &gogenerator.GoGenerator{}, &goTestHelper{}},
55+
"fbs-c": {"c", ".fbs", []string{".obx.h"}, &cgenerator.CGenerator{PlainC: true}, &cTestHelper{cpp: false}},
56+
"fbs-cpp": {"cpp", ".fbs", []string{"-cpp.obx.h", ".obx.cpp"}, &cgenerator.CGenerator{PlainC: false}, &cTestHelper{cpp: true}},
57+
"go": {"go", ".go", []string{".obx.go"}, &gogenerator.GoGenerator{}, &goTestHelper{}},
5858
}

test/comparison/go-helper.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,6 @@ func argsToMap(args string) map[string]string {
8888
}
8989

9090
func (goTestHelper) prepareTempDir(t *testing.T, conf testSpec, srcDir, tempDir, tempRoot string) func(err error) error {
91-
// copy the source dir, including the relative paths (to make sure expected errors contain same paths)
92-
assert.NoErr(t, copyDirectory(srcDir, tempDir, 0700, 0600))
93-
9491
// When outside of the project's directory, we need to set up the whole temp dir as its own module, otherwise
9592
// imports won't work correctly. To do that we create a go.mod file pointing it to this repo.
9693
var modulePath = goModuleName + "/test/comparison/" + srcDir

test/comparison/test-all.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,11 @@ func generateOneDir(t *testing.T, overwriteExpected bool, conf testSpec, srcType
9999
t.Logf("Testing in a temporary directory %s", genDir)
100100
assert.NoErr(t, os.MkdirAll(genDir, 0700))
101101

102-
if conf.helper != nil {
103-
if errTrans := conf.helper.prepareTempDir(t, conf, srcDir, genDir, tempRoot); errTrans != nil {
104-
errorTransformer = errTrans
105-
}
102+
// copy the source dir, including the relative paths (to make sure expected errors contain same paths)
103+
assert.NoErr(t, copyDirectory(srcDir, genDir, 0700, 0600))
104+
105+
if errTrans := conf.helper.prepareTempDir(t, conf, srcDir, genDir, tempRoot); errTrans != nil {
106+
errorTransformer = errTrans
106107
}
107108

108109
// Go generator updates generator go.mod when loading files (adds the missing objectbox-go import).
@@ -137,7 +138,7 @@ func generateOneDir(t *testing.T, overwriteExpected bool, conf testSpec, srcType
137138
}
138139

139140
// verify the result can be built
140-
if !testing.Short() && conf.helper != nil {
141+
if !testing.Short() {
141142
// override the defer to prevent cleanup before compilation is actually run
142143
var cleanupAfterCompile = cleanup
143144
cleanup = func() {}
@@ -195,11 +196,14 @@ func assertSameFile(t *testing.T, file string, expectedFile string, overwriteExp
195196
func generateAllFiles(t *testing.T, overwriteExpected bool, conf testSpec, srcDir, expDir, genDir string, modelInfoFile string, errorTransformer func(error) error) int {
196197
// remove generated files during development (they might be syntactically wrong)
197198
if overwriteExpected {
198-
files, err := filepath.Glob(filepath.Join(genDir, "*"+conf.generatedExt))
199-
assert.NoErr(t, err)
199+
for _, generatedExt := range conf.generatedExt {
200+
files, err := filepath.Glob(filepath.Join(genDir, "*"+generatedExt))
201+
assert.NoErr(t, err)
200202

201-
for _, file := range files {
202-
assert.NoErr(t, os.Remove(file))
203+
for _, file := range files {
204+
t.Logf("removing previously generated %s", file)
205+
assert.NoErr(t, os.Remove(file))
206+
}
203207
}
204208
}
205209

@@ -208,6 +212,8 @@ func generateAllFiles(t *testing.T, overwriteExpected bool, conf testSpec, srcDi
208212
// process all source files in the directory
209213
inputFiles, err := filepath.Glob(filepath.Join(srcDir, "*"+conf.sourceExt))
210214
assert.NoErr(t, err)
215+
assert.True(t, len(inputFiles) > 0)
216+
211217
for _, sourceFile := range inputFiles {
212218
// skip generated files & "expected results" files
213219
if conf.generator.IsGeneratedFile(sourceFile) ||

0 commit comments

Comments
 (0)