From 38d9c881b3b5ece91f428c87f0b7bb9efb3e88a8 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Fri, 23 Apr 2021 16:51:22 +0200 Subject: Updated for go 1.16 modules --- pkg/utils/clen.go | 11 +++++++++++ pkg/utils/clen_test.go | 26 ++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 pkg/utils/clen.go create mode 100644 pkg/utils/clen_test.go (limited to 'pkg/utils') 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) + } + }) + } +} -- cgit v1.2.3