2018-05-18 17:10:14 -04:00
|
|
|
package kernel
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/sirupsen/logrus"
|
2020-08-31 11:55:22 -04:00
|
|
|
"gotest.tools/v3/assert"
|
|
|
|
is "gotest.tools/v3/assert/cmp"
|
2018-05-18 17:10:14 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestReadWriteKnobs(t *testing.T) {
|
|
|
|
for _, k := range []string{
|
|
|
|
"net.ipv4.neigh.default.gc_thresh1",
|
|
|
|
"net.ipv4.neigh.default.gc_thresh2",
|
|
|
|
"net.ipv4.neigh.default.gc_thresh3",
|
|
|
|
} {
|
|
|
|
// Check if the test is able to read the value
|
|
|
|
v, err := readSystemProperty(k)
|
|
|
|
if err != nil {
|
|
|
|
logrus.WithError(err).Warnf("Path %v not readable", k)
|
|
|
|
// the path is not there, skip this key
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
// Test the write
|
2018-07-04 05:01:52 -04:00
|
|
|
assert.Check(t, writeSystemProperty(k, "10000"))
|
2018-05-18 17:10:14 -04:00
|
|
|
newV, err := readSystemProperty(k)
|
2018-07-04 05:01:52 -04:00
|
|
|
assert.NilError(t, err)
|
|
|
|
assert.Check(t, is.Equal(newV, "10000"))
|
2018-05-18 17:10:14 -04:00
|
|
|
// Restore value
|
2018-07-04 05:01:52 -04:00
|
|
|
assert.Check(t, writeSystemProperty(k, v))
|
2018-05-18 17:10:14 -04:00
|
|
|
}
|
|
|
|
}
|