Fix a silly bug and add test coverage
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
coverage.out
|
||||||
@@ -250,13 +250,14 @@ func (t *Transaction) GetEnvList() (map[string]string, error) {
|
|||||||
t.status = C.PAM_BUF_ERR
|
t.status = C.PAM_BUF_ERR
|
||||||
return nil, t
|
return nil, t
|
||||||
}
|
}
|
||||||
for *p != nil {
|
q := p
|
||||||
chunks := strings.SplitN(C.GoString(*p), "=", 2)
|
for *q != nil {
|
||||||
|
chunks := strings.SplitN(C.GoString(*q), "=", 2)
|
||||||
if len(chunks) == 2 {
|
if len(chunks) == 2 {
|
||||||
env[chunks[0]] = chunks[1]
|
env[chunks[0]] = chunks[1]
|
||||||
}
|
}
|
||||||
C.free(unsafe.Pointer(*p))
|
C.free(unsafe.Pointer(*q))
|
||||||
p = (**C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(p)) + unsafe.Sizeof(p)))
|
q = (**C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(q)) + unsafe.Sizeof(*p)))
|
||||||
}
|
}
|
||||||
C.free(unsafe.Pointer(p))
|
C.free(unsafe.Pointer(p))
|
||||||
return env, nil
|
return env, nil
|
||||||
|
|||||||
@@ -99,15 +99,62 @@ func TestPAM_004(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetEnvList(t *testing.T) {
|
func TestGetEnvList(t *testing.T) {
|
||||||
tx, err := StartFunc("passwd", "test", func(s Style, msg string) (string, error) {
|
tx, err := StartFunc("", "", func(s Style, msg string) (string, error) {
|
||||||
return "", nil
|
return "", nil
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("start #error: %v", err)
|
t.Fatalf("start #error: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
m, err := tx.GetEnvList()
|
m, err := tx.GetEnvList()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("getenvlist #error: %v", err)
|
t.Fatalf("getenvlist #error: %v", err)
|
||||||
}
|
}
|
||||||
t.Log(m)
|
n := len(m)
|
||||||
|
if n != 0 {
|
||||||
|
t.Fatalf("putenv #error: expected 0 items, got %v", n)
|
||||||
|
}
|
||||||
|
|
||||||
|
vals := []string{
|
||||||
|
"VAL1=1",
|
||||||
|
"VAL2=2",
|
||||||
|
"VAL3=3",
|
||||||
|
}
|
||||||
|
for _, s := range vals {
|
||||||
|
err = tx.PutEnv(s)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("putenv #error: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s := tx.GetEnv("VAL1")
|
||||||
|
if s != "1" {
|
||||||
|
t.Fatalf("getenv #error: expected 1, got %v", s)
|
||||||
|
}
|
||||||
|
s = tx.GetEnv("VAL2")
|
||||||
|
if s != "2" {
|
||||||
|
t.Fatalf("getenv #error: expected 2, got %v", s)
|
||||||
|
}
|
||||||
|
s = tx.GetEnv("VAL3")
|
||||||
|
if s != "3" {
|
||||||
|
t.Fatalf("getenv #error: expected 3, got %v", s)
|
||||||
|
}
|
||||||
|
|
||||||
|
m, err = tx.GetEnvList()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("getenvlist #error: %v", err)
|
||||||
|
}
|
||||||
|
n = len(m)
|
||||||
|
if n != 3 {
|
||||||
|
t.Fatalf("getenvlist #error: expected 3 items, got %v", n)
|
||||||
|
}
|
||||||
|
if m["VAL1"] != "1" {
|
||||||
|
t.Fatalf("getenvlist #error: expected 1, got %v", m["VAL1"])
|
||||||
|
}
|
||||||
|
if m["VAL2"] != "2" {
|
||||||
|
t.Fatalf("getenvlist #error: expected 2, got %v", m["VAL1"])
|
||||||
|
}
|
||||||
|
if m["VAL3"] != "3" {
|
||||||
|
t.Fatalf("getenvlist #error: expected 3, got %v", m["VAL1"])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user