aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorJulien Dessaux2020-02-22 11:57:50 +0100
committerJulien Dessaux2020-02-22 11:57:50 +0100
commitbcfaffac240d74cd79bec3c2a9d3c144d215b495 (patch)
treeedd2c5f1e011afee759970323042fcf35bf68962 /utils
parentImproved tests for job package (diff)
downloadbareos-zabbix-check-bcfaffac240d74cd79bec3c2a9d3c144d215b495.tar.gz
bareos-zabbix-check-bcfaffac240d74cd79bec3c2a9d3c144d215b495.tar.bz2
bareos-zabbix-check-bcfaffac240d74cd79bec3c2a9d3c144d215b495.zip
Added tests to the state package, and reworked the code around that
Diffstat (limited to 'utils')
-rw-r--r--utils/clen.go11
-rw-r--r--utils/clen_test.go26
2 files changed, 37 insertions, 0 deletions
diff --git a/utils/clen.go b/utils/clen.go
new file mode 100644
index 0000000..17d1c4b
--- /dev/null
+++ b/utils/clen.go
@@ -0,0 +1,11 @@
+package utils
+
+// Clen returns the length of a null terminated string like in C
+func Clen(n []byte) int {
+ for i := 0; i < len(n); i++ {
+ if n[i] == 0 {
+ return i
+ }
+ }
+ return len(n)
+}
diff --git a/utils/clen_test.go b/utils/clen_test.go
new file mode 100644
index 0000000..19361b0
--- /dev/null
+++ b/utils/clen_test.go
@@ -0,0 +1,26 @@
+package utils
+
+import "testing"
+
+func TestClen(t *testing.T) {
+ normalString := append([]byte("abcd"), 0)
+ type args struct {
+ n []byte
+ }
+ tests := []struct {
+ name string
+ args args
+ want int
+ }{
+ {"empty string", args{}, 0},
+ {"normal string", args{normalString}, 4},
+ {"non null terminated string", args{[]byte("abcd")}, 4},
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ if got := Clen(tt.args.n); got != tt.want {
+ t.Errorf("Clen() = %v, want %v", got, tt.want)
+ }
+ })
+ }
+}