Browse Source

integration test with discovery

Alex Cheema 1 year ago
parent
commit
8dd17fe00b
1 changed files with 42 additions and 1 deletions
  1. 42 1
      .github/workflows/test.yml

+ 42 - 1
.github/workflows/test.yml

@@ -7,7 +7,7 @@ on:
     branches: [ main ]
     branches: [ main ]
 
 
 jobs:
 jobs:
-  test:
+  unit_test:
     runs-on: macos-14
     runs-on: macos-14
     steps:
     steps:
     - uses: actions/checkout@v2
     - uses: actions/checkout@v2
@@ -21,3 +21,44 @@ jobs:
         pip install .
         pip install .
     - name: Run tests
     - name: Run tests
       run: python3 -m exo.inference.test_inference_engine
       run: python3 -m exo.inference.test_inference_engine
+
+  integration_test:
+    runs-on: macos-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Set up Python
+      uses: actions/setup-python@v2
+      with:
+        python-version: '3.x'
+    - name: Install dependencies
+      run: |
+        python3 -m pip install --upgrade pip
+        pip install -r requirements.txt
+    - name: Run integration test
+      run: |
+        # Start first instance
+        DEBUG_DISCOVERY=9 DEBUG=9 python3 main.py --listen-port 5678 --broadcast-port 5679 > output1.log 2>&1 &
+        PID1=$!
+
+        # Start second instance
+        DEBUG_DISCOVERY=9 DEBUG=9 python3 main.py --listen-port 5679 --broadcast-port 5678 > output2.log 2>&1 &
+        PID2=$!
+
+        # Wait for discovery
+        sleep 10
+
+        # Stop both instances
+        kill $PID1 $PID2
+
+        # Check outputs
+        if grep -q "Discovered new peer" output1.log && grep -q "Device discovered" output2.log; then
+          echo "Test passed: Both instances discovered each other"
+          exit 0
+        else
+          echo "Test failed: Devices did not discover each other"
+          echo "Output of first instance:"
+          cat output1.log
+          echo "Output of second instance:"
+          cat output2.log
+          exit 1
+        fi