main_tests are not working as expected

The global values which store the flags are not regenerated during test

Signed-off-by: Christian Goll <cgoll@suse.de>
This commit is contained in:
Christian Goll
2023-03-07 17:01:57 +01:00
parent 07d39c2e49
commit d3af143a5b
4 changed files with 213 additions and 10 deletions

View File

@@ -382,3 +382,30 @@ func GetByName(node interface{}, name string) (string, error) {
myEntry := entryField.Interface().(Entry)
return myEntry.Get(), nil
}
/*
Check if the Netdev is empty, so has no values set
*/
func (dev *NetDevs) Empty() bool {
if dev == nil {
return true
}
varType := reflect.TypeOf(*dev)
varVal := reflect.ValueOf(*dev)
if varVal.IsZero() {
return true
}
for i := 0; i < varType.NumField(); i++ {
if varType.Field(i).Type.Kind() == reflect.String && !varVal.Field(i).IsZero() {
val := varVal.Field(i).Interface().(string)
if val != "" {
return false
}
} else if varType.Field(i).Type == reflect.TypeOf(map[string]string{}) {
if len(varVal.Field(i).Interface().(map[string]string)) != 0 {
return false
}
}
}
return true
}

View File

@@ -0,0 +1,32 @@
package node
import "testing"
func Test_Empty(t *testing.T) {
var netdev NetDevs
var netdevPtr *NetDevs
t.Run("test for empty", func(t *testing.T) {
if netdev.Empty() != true {
t.Errorf("netdev must be empty")
}
})
t.Run("test for non empty", func(t *testing.T) {
netdev.Device = "foo"
if netdev.Empty() == true {
t.Errorf("netdev must be non empty")
}
})
t.Run("test for nil pointer", func(t *testing.T) {
if netdevPtr.Empty() != true {
t.Errorf("netdev must be empty")
}
})
t.Run("test for pointer assigned", func(t *testing.T) {
netdev.Ipaddr = "10.10.10.1"
netdevPtr = &netdev
if netdevPtr.Empty() == true {
t.Errorf("netdev must be empty")
}
})
}