From 24678d503486e36dcda92b2176419421f1a90a41 Mon Sep 17 00:00:00 2001 From: ibraheem-opentensor Date: Tue, 10 Dec 2024 12:37:16 -0800 Subject: [PATCH 1/3] Fixes buffer overflow in stdout --- tests/e2e_tests/conftest.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/tests/e2e_tests/conftest.py b/tests/e2e_tests/conftest.py index 4a7b2ccf62..5d94f3aedd 100644 --- a/tests/e2e_tests/conftest.py +++ b/tests/e2e_tests/conftest.py @@ -4,6 +4,7 @@ import signal import subprocess import time +import threading import pytest from substrateinterface import SubstrateInterface @@ -37,7 +38,11 @@ def local_chain(request): # Start new node process process = subprocess.Popen( - cmds, stdout=subprocess.PIPE, text=True, preexec_fn=os.setsid + cmds, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + preexec_fn=os.setsid, ) # Pattern match indicates node is compiled and ready @@ -52,16 +57,31 @@ def local_chain(request): timestamp = int(time.time()) def wait_for_node_start(process, pattern): - for line in process.stdout: + while True: + line = process.stdout.readline() + if not line: + break + print(line.strip()) # 10 min as timeout if int(time.time()) - timestamp > 10 * 60: print("Subtensor not started in time") - break + return if pattern.search(line): print("Node started!") break + # Start a background reader after pattern is found + # To prevent the buffer filling up + def read_output(): + while True: + line = process.stdout.readline() + if not line: + break + + reader_thread = threading.Thread(target=read_output, daemon=True) + reader_thread.start() + wait_for_node_start(process, pattern) # Run the test, passing in substrate interface From 92d5c7bf4973129fbff993d36e75b588be8f6be5 Mon Sep 17 00:00:00 2001 From: ibraheem-opentensor <165814940+ibraheem-opentensor@users.noreply.github.com> Date: Tue, 10 Dec 2024 13:46:36 -0800 Subject: [PATCH 2/3] Testing on devnet --- .github/workflows/e2e-subtensor-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-subtensor-tests.yaml b/.github/workflows/e2e-subtensor-tests.yaml index 0bc467a94d..9dbce4cd62 100644 --- a/.github/workflows/e2e-subtensor-tests.yaml +++ b/.github/workflows/e2e-subtensor-tests.yaml @@ -90,7 +90,7 @@ jobs: - name: Setup subtensor repo working-directory: ${{ github.workspace }}/subtensor - run: git checkout testnet + run: git checkout devnet - name: Run tests run: | From b352c3f4e2cfb908cd99565fd53203e2085e77a5 Mon Sep 17 00:00:00 2001 From: ibraheem-opentensor <165814940+ibraheem-opentensor@users.noreply.github.com> Date: Tue, 10 Dec 2024 15:09:40 -0800 Subject: [PATCH 3/3] Switching back to testnet --- .github/workflows/e2e-subtensor-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-subtensor-tests.yaml b/.github/workflows/e2e-subtensor-tests.yaml index 9dbce4cd62..0bc467a94d 100644 --- a/.github/workflows/e2e-subtensor-tests.yaml +++ b/.github/workflows/e2e-subtensor-tests.yaml @@ -90,7 +90,7 @@ jobs: - name: Setup subtensor repo working-directory: ${{ github.workspace }}/subtensor - run: git checkout devnet + run: git checkout testnet - name: Run tests run: |