github.com/elves/elvish@v0.15.0/pkg/eval/vars/ptr_test.go (about) 1 package vars 2 3 import "testing" 4 5 func TestFromPtr(t *testing.T) { 6 i := 10 7 variable := FromPtr(&i) 8 if g := variable.Get(); g != "10" { 9 t.Errorf(`Getting ptrVariable returns %v, want "10"`, g) 10 } 11 if g := variable.GetRaw(); g != 10 { 12 t.Errorf("GetRaw -> %v, want 10", g) 13 } 14 err := variable.Set("20") 15 if err != nil { 16 t.Errorf(`Setting ptrVariable with "20" returns error %v`, err) 17 } 18 if i != 20 { 19 t.Errorf(`Setting ptrVariable didn't change underlying value`) 20 } 21 err = variable.Set("x") 22 if err == nil { 23 t.Errorf("Setting ptrVariable with incompatible value returns no error") 24 } 25 } 26 27 func TestFromInit(t *testing.T) { 28 v := FromInit(true) 29 if val := v.Get(); val != true { 30 t.Errorf("Get returned %v, want true", val) 31 } 32 if err := v.Set("233"); err != nil { 33 t.Errorf("Set errors: %v", err) 34 } 35 if val := v.Get(); val != "233" { 36 t.Errorf(`Get returns %v, want "233"`, val) 37 } 38 }