# HG changeset patch # User Christophe de Vienne <christophe@cdevienne.info> # Date 1602667341 -7200 # Wed Oct 14 11:22:21 2020 +0200 # Node ID 9363ce22972fae5993e1538d91fae4bf08482c40 # Parent 86f7892ca412dbd41844d019a65a519bd6c2d254 Better error handling + tools diff --git a/database/test.go b/database/test.go --- a/database/test.go +++ b/database/test.go @@ -129,10 +129,12 @@ } // Close the lock connection, then the database -func (db *TestDB) Close() error { +func (db *TestDB) Close() { if err := db.lockConn.Close(); err != nil { db.tb.Error("lockConn.Close() failed", err) } - return db.DB.Close() + if err := db.DB.Close(); err != nil { + db.tb.Error("db.Close() failed", err) + } } diff --git a/templates/server/cmd.gotmpl b/templates/server/cmd.gotmpl --- a/templates/server/cmd.gotmpl +++ b/templates/server/cmd.gotmpl @@ -61,7 +61,9 @@ parser.NamespaceDelimiter = "-" parser.EnvNamespaceDelimiter = "_" parser.EnvNamespace = "CARNET" - parser.AddGroup("Configuration", "Configuration file", ConfigFileOption) + if _, err := parser.AddGroup("Configuration", "Configuration file", ConfigFileOption); err != nil { + panic(err) + } g, err := parser.AddGroup("Logging", "Logging options", LoggingOptions) if err != nil { panic(err) @@ -83,12 +85,16 @@ g.Namespace="sentry" g.EnvNamespace="SENTRY" - parser.AddCommand("generate-config", "Generate a configuration file", "", orusapi.NewGenerateConfigCmd(parser)) + if _, err := parser.AddCommand("generate-config", "Generate a configuration file", "", orusapi.NewGenerateConfigCmd(parser)); err != nil { + panic(err) + } bootstrapParser.NamespaceDelimiter = "-" bootstrapParser.EnvNamespaceDelimiter = "_" bootstrapParser.EnvNamespace = "CARNET" - bootstrapParser.AddGroup("Configuration", "Configuration file", ConfigFileOption) + if _, err := bootstrapParser.AddGroup("Configuration", "Configuration file", ConfigFileOption); err != nil { + panic(err) + } g, err = bootstrapParser.AddGroup("Logging", "Logging options", LoggingOptions) if err != nil { panic(err) diff --git a/templates/server/cmdMigrate.gotmpl b/templates/server/cmdMigrate.gotmpl --- a/templates/server/cmdMigrate.gotmpl +++ b/templates/server/cmdMigrate.gotmpl @@ -3,9 +3,9 @@ package cmd import ( + "github.com/golang-migrate/migrate/v4" + "github.com/rs/zerolog" "orus.io/orus-io/go-orusapi/database" - "github.com/golang-migrate/migrate/v4/source" - bindata "github.com/golang-migrate/migrate/v4/source/go_bindata" "{{ joinFilePath .TargetImportPath "migration" }}" ) @@ -32,7 +32,16 @@ if err != nil { return fmt.Errorf("failed to init migration engine: %s", err) } - defer m.Close() + defer func() { + if sourceErr, databaseErr := m.Close(); sourceErr != nil || databaseErr != nil { + if sourceErr != nil { + log.Err(err).Msg("error closing Migrate source") + } + if databaseErr != nil { + log.Err(err).Msg("error closing Migrate database") + } + } + }() if err := m.Up(); err != nil { if err == migrate.ErrNoChange { diff --git a/testutils/defered_errcheck.go b/testutils/defered_errcheck.go new file mode 100644 --- /dev/null +++ b/testutils/defered_errcheck.go @@ -0,0 +1,12 @@ +package testutils + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +// DeferedErrCheck ... +func DeferedErrCheck(tb testing.TB, cb func() error) { + assert.NoError(tb, cb()) +}