Adding gosec and lint, fixing null_type overflow
ChangeLog: - Adding gosec linting - Adding static type to enum - fixing nulltype overflow - Trying out gotestsum as an alternative to go-junit-report.xml
This commit is contained in:
parent
f9358ca8d2
commit
f7082eda68
16 changed files with 193 additions and 93 deletions
|
|
@ -10,6 +10,10 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
castOverFlowError = fmt.Errorf("cannot cast a negative value to an unsigned value, buffer overflow error")
|
||||
)
|
||||
|
||||
// NullBool struct
|
||||
type NullBool struct {
|
||||
sql.NullBool
|
||||
|
|
@ -119,32 +123,47 @@ func (n *NullUInt64) Scan(value interface{}) error {
|
|||
n.Valid = false
|
||||
return nil
|
||||
case int64:
|
||||
if v < 0 {
|
||||
return castOverFlowError
|
||||
}
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
case int32:
|
||||
if v < 0 {
|
||||
return castOverFlowError
|
||||
}
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
case int16:
|
||||
if v < 0 {
|
||||
return castOverFlowError
|
||||
}
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
case int8:
|
||||
if v < 0 {
|
||||
return castOverFlowError
|
||||
}
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
case int:
|
||||
if v < 0 {
|
||||
return castOverFlowError
|
||||
}
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
case uint64:
|
||||
n.UInt64, n.Valid = v, true
|
||||
return nil
|
||||
case int32:
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
case uint32:
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
case int16:
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
case uint16:
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
case int8:
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
case uint8:
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
case int:
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
case uint:
|
||||
n.UInt64, n.Valid = uint64(v), true
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package internal
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"testing"
|
||||
"time"
|
||||
|
|
@ -62,11 +63,21 @@ func TestNullUInt64(t *testing.T) {
|
|||
value, _ := nullUInt64.Value()
|
||||
require.Equal(t, value, uint64(11))
|
||||
|
||||
require.NoError(t, nullUInt64.Scan(uint64(11)))
|
||||
require.Equal(t, nullUInt64.Valid, true)
|
||||
value, _ = nullUInt64.Value()
|
||||
require.Equal(t, value, uint64(11))
|
||||
|
||||
require.NoError(t, nullUInt64.Scan(int32(32)))
|
||||
require.Equal(t, nullUInt64.Valid, true)
|
||||
value, _ = nullUInt64.Value()
|
||||
require.Equal(t, value, uint64(32))
|
||||
|
||||
require.NoError(t, nullUInt64.Scan(uint32(32)))
|
||||
require.Equal(t, nullUInt64.Valid, true)
|
||||
value, _ = nullUInt64.Value()
|
||||
require.Equal(t, value, uint64(32))
|
||||
|
||||
require.NoError(t, nullUInt64.Scan(int16(20)))
|
||||
require.Equal(t, nullUInt64.Valid, true)
|
||||
value, _ = nullUInt64.Value()
|
||||
|
|
@ -88,4 +99,29 @@ func TestNullUInt64(t *testing.T) {
|
|||
require.Equal(t, value, uint64(30))
|
||||
|
||||
require.Error(t, nullUInt64.Scan("text"), "can't scan int32 from text")
|
||||
|
||||
//Validate negative use cases
|
||||
err := nullUInt64.Scan(int64(-5))
|
||||
assert.NotNil(t, err)
|
||||
assert.Error(t, err, castOverFlowError)
|
||||
|
||||
//Validate negative use cases
|
||||
err = nullUInt64.Scan(-5)
|
||||
assert.NotNil(t, err)
|
||||
assert.Error(t, err, castOverFlowError)
|
||||
|
||||
//Validate negative use cases
|
||||
err = nullUInt64.Scan(int32(-5))
|
||||
assert.NotNil(t, err)
|
||||
assert.Error(t, err, castOverFlowError)
|
||||
|
||||
//Validate negative use cases
|
||||
err = nullUInt64.Scan(int16(-5))
|
||||
assert.NotNil(t, err)
|
||||
assert.Error(t, err, castOverFlowError)
|
||||
|
||||
//Validate negative use cases
|
||||
err = nullUInt64.Scan(int8(-5))
|
||||
assert.NotNil(t, err)
|
||||
assert.Error(t, err, castOverFlowError)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue