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
|
||||
return nil, t
|
||||
}
|
||||
for *p != nil {
|
||||
chunks := strings.SplitN(C.GoString(*p), "=", 2)
|
||||
q := p
|
||||
for *q != nil {
|
||||
chunks := strings.SplitN(C.GoString(*q), "=", 2)
|
||||
if len(chunks) == 2 {
|
||||
env[chunks[0]] = chunks[1]
|
||||
}
|
||||
C.free(unsafe.Pointer(*p))
|
||||
p = (**C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(p)) + unsafe.Sizeof(p)))
|
||||
C.free(unsafe.Pointer(*q))
|
||||
q = (**C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(q)) + unsafe.Sizeof(*p)))
|
||||
}
|
||||
C.free(unsafe.Pointer(p))
|
||||
return env, nil
|
||||
|
||||
@@ -99,15 +99,62 @@ func TestPAM_004(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
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("start #error: %v", err)
|
||||
}
|
||||
|
||||
m, err := tx.GetEnvList()
|
||||
if err != nil {
|
||||
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