aboutsummaryrefslogtreecommitdiff
path: root/pkg/utils
diff options
context:
space:
mode:
authorJulien Dessaux2021-04-23 16:51:22 +0200
committerJulien Dessaux2021-04-23 16:51:22 +0200
commit38d9c881b3b5ece91f428c87f0b7bb9efb3e88a8 (patch)
treed3f7167fae6388f4db35a63e660d1816c9c2943e /pkg/utils
parentFixed wrongfully hardcoded path in tests. (diff)
downloadbareos-zabbix-check-1.2.tar.gz
bareos-zabbix-check-1.2.tar.bz2
bareos-zabbix-check-1.2.zip
Updated for go 1.16 modules1.2
Diffstat (limited to 'pkg/utils')
-rw-r--r--pkg/utils/clen.go11
-rw-r--r--pkg/utils/clen_test.go26
2 files changed, 37 insertions, 0 deletions
diff --git a/pkg/utils/clen.go b/pkg/utils/clen.go
new file mode 100644
index 0000000..17d1c4b
--- /dev/null
+++ b/pkg/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/pkg/utils/clen_test.go b/pkg/utils/clen_test.go
new file mode 100644
index 0000000..19361b0
--- /dev/null
+++ b/pkg/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)
+ }
+ })
+ }
+}