summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/tests/vectorset/vectorset.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'examples/redis-unstable/tests/vectorset/vectorset.tcl')
-rw-r--r--examples/redis-unstable/tests/vectorset/vectorset.tcl46
1 files changed, 46 insertions, 0 deletions
diff --git a/examples/redis-unstable/tests/vectorset/vectorset.tcl b/examples/redis-unstable/tests/vectorset/vectorset.tcl
new file mode 100644
index 0000000..1a1059b
--- /dev/null
+++ b/examples/redis-unstable/tests/vectorset/vectorset.tcl
@@ -0,0 +1,46 @@
+proc check_python_environment {} {
+ set ret [catch {exec sh -c "which python3 || which python" 2>@1} python_cmd]
+ if {$ret != 0} {
+ return ""
+ }
+
+ # Check if redis-py is installed
+ # Use a more robust way to check redis module
+ set ret [catch {exec $python_cmd -c "import redis" 2>@1} e]
+ if {$ret != 0} {
+ return ""
+ }
+
+ return $python_cmd
+}
+
+start_server {} {
+ set slave_port [srv 0 port]
+
+ start_server {} {
+ set master_port [srv 0 port]
+
+ test {Vector set Python test execution} {
+ set python_cmd [check_python_environment]
+ if {$python_cmd eq ""} {
+ puts "Python or redis-py module not found, skipping vectorset tests"
+ } else {
+ # Run the Python script with real-time output
+ puts "Running vectorset tests ..."
+ puts "Vectorset test output:"
+
+ set pipe [open "|$python_cmd modules/vector-sets/test.py --primary-port $master_port --replica-port $slave_port 2>@1" r]
+ # Read output line by line in real-time
+ while {[gets $pipe line] >= 0} {
+ puts $line
+ }
+
+ # Close pipe and check for errors
+ set result [catch {close $pipe} close_error]
+ if {$result != 0} {
+ fail "Vector set Python test failed: $close_error"
+ }
+ }
+ }
+ }
+}