mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2025-12-20 17:10:08 +08:00
chore: add more test for TypedValue
This commit is contained in:
parent
71290b057f
commit
eeb2ad8dae
@ -44,20 +44,126 @@ func TestTypedValue(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
e1, e2, e3 := io.EOF, &os.PathError{}, &os.PathError{}
|
||||||
|
var v TypedValue[error]
|
||||||
|
if v.CompareAndSwap(e1, e2) != false {
|
||||||
|
t.Fatalf("CompareAndSwap = true, want false")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != nil {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, nil)
|
||||||
|
}
|
||||||
|
if v.CompareAndSwap(nil, e1) != true {
|
||||||
|
t.Fatalf("CompareAndSwap = false, want true")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != e1 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, e1)
|
||||||
|
}
|
||||||
|
if v.CompareAndSwap(e2, e3) != false {
|
||||||
|
t.Fatalf("CompareAndSwap = true, want false")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != e1 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, e1)
|
||||||
|
}
|
||||||
|
if v.CompareAndSwap(e1, e2) != true {
|
||||||
|
t.Fatalf("CompareAndSwap = false, want true")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != e2 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, e2)
|
||||||
|
}
|
||||||
|
if v.CompareAndSwap(e3, e2) != false {
|
||||||
|
t.Fatalf("CompareAndSwap = true, want false")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != e2 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, e2)
|
||||||
|
}
|
||||||
|
if v.CompareAndSwap(nil, e3) != false {
|
||||||
|
t.Fatalf("CompareAndSwap = true, want false")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != e2 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, e2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
c1, c2, c3 := make(chan struct{}), make(chan struct{}), make(chan struct{})
|
c1, c2, c3 := make(chan struct{}), make(chan struct{}), make(chan struct{})
|
||||||
var v TypedValue[chan struct{}]
|
var v TypedValue[chan struct{}]
|
||||||
if v.CompareAndSwap(c1, c2) != false {
|
if v.CompareAndSwap(c1, c2) != false {
|
||||||
t.Fatalf("CompareAndSwap = true, want false")
|
t.Fatalf("CompareAndSwap = true, want false")
|
||||||
}
|
}
|
||||||
|
if value := v.Load(); value != nil {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, nil)
|
||||||
|
}
|
||||||
if v.CompareAndSwap(nil, c1) != true {
|
if v.CompareAndSwap(nil, c1) != true {
|
||||||
t.Fatalf("CompareAndSwap = false, want true")
|
t.Fatalf("CompareAndSwap = false, want true")
|
||||||
}
|
}
|
||||||
|
if value := v.Load(); value != c1 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, c1)
|
||||||
|
}
|
||||||
if v.CompareAndSwap(c2, c3) != false {
|
if v.CompareAndSwap(c2, c3) != false {
|
||||||
t.Fatalf("CompareAndSwap = true, want false")
|
t.Fatalf("CompareAndSwap = true, want false")
|
||||||
}
|
}
|
||||||
|
if value := v.Load(); value != c1 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, c1)
|
||||||
|
}
|
||||||
if v.CompareAndSwap(c1, c2) != true {
|
if v.CompareAndSwap(c1, c2) != true {
|
||||||
t.Fatalf("CompareAndSwap = false, want true")
|
t.Fatalf("CompareAndSwap = false, want true")
|
||||||
}
|
}
|
||||||
|
if value := v.Load(); value != c2 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, c2)
|
||||||
|
}
|
||||||
|
if v.CompareAndSwap(c3, c2) != false {
|
||||||
|
t.Fatalf("CompareAndSwap = true, want false")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != c2 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, c2)
|
||||||
|
}
|
||||||
|
if v.CompareAndSwap(nil, c3) != false {
|
||||||
|
t.Fatalf("CompareAndSwap = true, want false")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != c2 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, c2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
c1, c2, c3 := &io.LimitedReader{}, &io.SectionReader{}, &io.SectionReader{}
|
||||||
|
var v TypedValue[io.Reader]
|
||||||
|
if v.CompareAndSwap(c1, c2) != false {
|
||||||
|
t.Fatalf("CompareAndSwap = true, want false")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != nil {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, nil)
|
||||||
|
}
|
||||||
|
if v.CompareAndSwap(nil, c1) != true {
|
||||||
|
t.Fatalf("CompareAndSwap = false, want true")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != c1 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, c1)
|
||||||
|
}
|
||||||
|
if v.CompareAndSwap(c2, c3) != false {
|
||||||
|
t.Fatalf("CompareAndSwap = true, want false")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != c1 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, c1)
|
||||||
|
}
|
||||||
|
if v.CompareAndSwap(c1, c2) != true {
|
||||||
|
t.Fatalf("CompareAndSwap = false, want true")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != c2 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, c2)
|
||||||
|
}
|
||||||
|
if v.CompareAndSwap(c3, c2) != false {
|
||||||
|
t.Fatalf("CompareAndSwap = true, want false")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != c2 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, c2)
|
||||||
|
}
|
||||||
|
if v.CompareAndSwap(nil, c3) != false {
|
||||||
|
t.Fatalf("CompareAndSwap = true, want false")
|
||||||
|
}
|
||||||
|
if value := v.Load(); value != c2 {
|
||||||
|
t.Fatalf("Load = (%v), want (%v)", value, c2)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user