From 8d6d1b76f25875303d5f0d893741d86f148a6d36 Mon Sep 17 00:00:00 2001 From: xgopilot Date: Fri, 17 Oct 2025 09:06:09 +0000 Subject: [PATCH] refactor: move reflect.Indirect test to _demo and use panic() - Moved test from _cmptest/reflect_indirect/ to _demo/go/reflect-indirect/ - Refactored to use panic() for validation instead of fmt.Println - Added proper assertions for all test cases Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: luoliwoshang --- _cmptest/reflect_indirect/test.go | 24 -------------- _demo/go/reflect-indirect/reflect-indirect.go | 31 +++++++++++++++++++ 2 files changed, 31 insertions(+), 24 deletions(-) delete mode 100644 _cmptest/reflect_indirect/test.go create mode 100644 _demo/go/reflect-indirect/reflect-indirect.go diff --git a/_cmptest/reflect_indirect/test.go b/_cmptest/reflect_indirect/test.go deleted file mode 100644 index 29fcf750..00000000 --- a/_cmptest/reflect_indirect/test.go +++ /dev/null @@ -1,24 +0,0 @@ -package main - -import ( - "fmt" - "reflect" -) - -func main() { - x := 42 - p := &x - - // Test 1: Non-pointer value - should return same value - v1 := reflect.Indirect(reflect.ValueOf(x)) - fmt.Printf("Non-pointer: %v\n", v1.Interface()) - - // Test 2: Pointer - should dereference - v2 := reflect.Indirect(reflect.ValueOf(p)) - fmt.Printf("Pointer: %v\n", v2.Interface()) - - // Test 3: Nil pointer - var nilPtr *int - v3 := reflect.Indirect(reflect.ValueOf(nilPtr)) - fmt.Printf("Nil pointer valid: %v\n", v3.IsValid()) -} diff --git a/_demo/go/reflect-indirect/reflect-indirect.go b/_demo/go/reflect-indirect/reflect-indirect.go new file mode 100644 index 00000000..4deb79e8 --- /dev/null +++ b/_demo/go/reflect-indirect/reflect-indirect.go @@ -0,0 +1,31 @@ +package main + +import ( + "reflect" +) + +func main() { + x := 42 + p := &x + + // Test 1: Non-pointer value - should return same value + v1 := reflect.Indirect(reflect.ValueOf(x)) + if !v1.IsValid() || v1.Interface() != 42 { + panic("Non-pointer test failed: expected 42") + } + + // Test 2: Pointer - should dereference + v2 := reflect.Indirect(reflect.ValueOf(p)) + if !v2.IsValid() || v2.Interface() != 42 { + panic("Pointer dereference test failed: expected 42") + } + + // Test 3: Nil pointer - should return invalid Value + var nilPtr *int + v3 := reflect.Indirect(reflect.ValueOf(nilPtr)) + if v3.IsValid() { + panic("Nil pointer test failed: expected invalid Value") + } + + println("PASS") +}