diff --git a/CMakeLists.txt b/CMakeLists.txt index 9540fdb2f3..e6d5571b47 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -203,6 +203,11 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/Scopy.app/Contents/MacOS") endif() +if(ENABLE_SCOPYJS) + message(STATUS "JS tests enabled - copying js/ to build directory") + file(COPY ${CMAKE_SOURCE_DIR}/js/ DESTINATION ${CMAKE_BINARY_DIR}/js) +endif() + set(SCOPY_DEPENDENCIES ${IIO_LIBRARIES}) if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) diff --git a/js/testAutomations/README.md b/js/testAutomations/README.md index 5f66ef78be..2860b9ff2c 100644 --- a/js/testAutomations/README.md +++ b/js/testAutomations/README.md @@ -2,37 +2,41 @@ ## Running Scripts — Path Requirements -All test scripts use `evaluateFile()` with paths **relative to the Scopy build directory**. The `evaluateFile()` function resolves paths against the current working directory (CWD), not the script file's location. This means **you must always run Scopy from the `build/` directory**: +All test scripts use `evaluateFile()` with paths **relative to the Scopy build directory**. The `evaluateFile()` function resolves paths against the current working directory (CWD), not the script file's location. + +Enable the `JS_TESTS_ENABLED` CMake option to copy the `js/` directory into the build directory, then run tests directly from the build directory: ```bash cd scopy/build/ -./scopy --script ../js/testAutomations/.js +cmake .. -DENABLE_SCOPYJS=ON -DJS_TESTS_ENABLED=ON +make -j$(nproc) +./scopy --script js/testAutomations/.js ``` For example: ```bash cd scopy/build/ -./scopy --script ../js/testAutomations/core/pluginLoadTests.js -./scopy --script ../js/testAutomations/m2k/voltmeter/voltmeter_dc_loopback.js +./scopy --script js/testAutomations/core/pluginLoadTests.js +./scopy --script js/testAutomations/m2k/voltmeter/voltmeter_dc_loopback.js ``` -Running from any other directory will cause `evaluateFile()` calls inside the scripts to fail, since they all load the shared test framework via: +All test scripts load the shared test framework via: ```javascript -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); ``` -This path only resolves correctly when CWD is `build/` (i.e., `build/../js/testAutomations/...`). +This path resolves correctly from any build directory when `JS_TESTS_ENABLED=ON` is set. --- ## Requirements -- **Scopy** built with `-DENABLE_SCOPYJS=ON` +- **Scopy** built with `-DENABLE_SCOPYJS=ON -DJS_TESTS_ENABLED=ON` - **iio-emu** for emulator-based tests (`iio-emu adalm2000`, `iio-emu generic`, etc.) - **ADALM2000 hardware** for M2K loopback tests requiring real signal paths ```bash cd scopy/build/ -cmake .. -DENABLE_SCOPYJS=ON +cmake .. -DENABLE_SCOPYJS=ON -DJS_TESTS_ENABLED=ON make -j$(nproc) ``` diff --git a/js/testAutomations/ad9084/ad9084DocTests.js b/js/testAutomations/ad9084/ad9084DocTests.js index 57e59ad5b3..1b1dbb2697 100644 --- a/js/testAutomations/ad9084/ad9084DocTests.js +++ b/js/testAutomations/ad9084/ad9084DocTests.js @@ -23,7 +23,7 @@ // Tests: TST.AD9084.CHANNEL_CONFIGURATION, TST.AD9084.DISABLE_ENABLE_RX_TX_TABS // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite TestFramework.init("AD9084 Documentation Tests"); diff --git a/js/testAutomations/ad9084/ad9084Tests.js b/js/testAutomations/ad9084/ad9084Tests.js index c2da13f461..05ef0dbb2b 100644 --- a/js/testAutomations/ad9084/ad9084Tests.js +++ b/js/testAutomations/ad9084/ad9084Tests.js @@ -22,7 +22,7 @@ // Runs all API tests: Connection, Tools, RX Chain, TX Chain, Widget Access, Utility // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: AD9084 Plugin Tests TestFramework.init("AD9084 Plugin Tests"); diff --git a/js/testAutomations/ad9084/ad9084VisualTests.js b/js/testAutomations/ad9084/ad9084VisualTests.js index 54044ca9b4..62222eb81b 100644 --- a/js/testAutomations/ad9084/ad9084VisualTests.js +++ b/js/testAutomations/ad9084/ad9084VisualTests.js @@ -27,7 +27,7 @@ // ============================================================================ // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite TestFramework.init("AD9084 Visual Validation Tests"); diff --git a/js/testAutomations/ad936x/ad936xAdvancedTests.js b/js/testAutomations/ad936x/ad936xAdvancedTests.js index 12088b9a22..6bfe738379 100644 --- a/js/testAutomations/ad936x/ad936xAdvancedTests.js +++ b/js/testAutomations/ad936x/ad936xAdvancedTests.js @@ -22,7 +22,7 @@ // Runs all API tests for the AD936X Advanced debug attributes // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: AD936x Advanced Plugin Tests TestFramework.init("AD936x Advanced Plugin Tests"); diff --git a/js/testAutomations/ad936x/ad936xDocTests.js b/js/testAutomations/ad936x/ad936xDocTests.js index 2d90a85151..745cb72bda 100644 --- a/js/testAutomations/ad936x/ad936xDocTests.js +++ b/js/testAutomations/ad936x/ad936xDocTests.js @@ -25,7 +25,7 @@ // TST.AD936X_ADVANCED.PLUGIN_DETECTION_AND_DISPLAY // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite TestFramework.init("AD936x Documentation Tests"); diff --git a/js/testAutomations/ad936x/ad936xTests.js b/js/testAutomations/ad936x/ad936xTests.js index 375cfd7b9e..b79f12ce27 100644 --- a/js/testAutomations/ad936x/ad936xTests.js +++ b/js/testAutomations/ad936x/ad936xTests.js @@ -22,7 +22,7 @@ // Runs all API tests: Connection, Global Settings, RX Chain, TX Chain, Widget Access, Utility // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: AD936x Plugin Tests TestFramework.init("AD936x Plugin Tests"); diff --git a/js/testAutomations/ad936x/ad936xVisualTests.js b/js/testAutomations/ad936x/ad936xVisualTests.js index 2bb76ce782..1549612272 100644 --- a/js/testAutomations/ad936x/ad936xVisualTests.js +++ b/js/testAutomations/ad936x/ad936xVisualTests.js @@ -27,7 +27,7 @@ // ============================================================================ // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite TestFramework.init("AD936x Visual Validation Tests"); diff --git a/js/testAutomations/ad936x/fmcomms5AdvancedTests.js b/js/testAutomations/ad936x/fmcomms5AdvancedTests.js index 92e91ec446..2df712b665 100644 --- a/js/testAutomations/ad936x/fmcomms5AdvancedTests.js +++ b/js/testAutomations/ad936x/fmcomms5AdvancedTests.js @@ -22,7 +22,7 @@ // Runs all API tests for the FMCOMMS5 Advanced debug attributes // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: FMCOMMS5 Advanced Plugin Tests TestFramework.init("FMCOMMS5 Advanced Plugin Tests"); diff --git a/js/testAutomations/ad936x/fmcomms5DocTests.js b/js/testAutomations/ad936x/fmcomms5DocTests.js index ad2f6954b3..8810ad6fea 100644 --- a/js/testAutomations/ad936x/fmcomms5DocTests.js +++ b/js/testAutomations/ad936x/fmcomms5DocTests.js @@ -30,7 +30,7 @@ // LO frequencies are per-device (device 0 and device 1) // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite TestFramework.init("FMCOMMS5 Documentation Tests"); diff --git a/js/testAutomations/ad936x/fmcomms5Tests.js b/js/testAutomations/ad936x/fmcomms5Tests.js index de1651eacc..3d083c6fb8 100644 --- a/js/testAutomations/ad936x/fmcomms5Tests.js +++ b/js/testAutomations/ad936x/fmcomms5Tests.js @@ -22,7 +22,7 @@ // Runs all API tests: Global Settings, RX Chain, TX Chain, Per-Channel, LO, Widget Access, Utility // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: FMCOMMS5 Plugin Tests TestFramework.init("FMCOMMS5 Plugin Tests"); diff --git a/js/testAutomations/ad936x/fmcomms5VisualTests.js b/js/testAutomations/ad936x/fmcomms5VisualTests.js index 25b5bd36bd..29650a1e7e 100644 --- a/js/testAutomations/ad936x/fmcomms5VisualTests.js +++ b/js/testAutomations/ad936x/fmcomms5VisualTests.js @@ -29,7 +29,7 @@ // ============================================================================ // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite TestFramework.init("FMCOMMS5 Visual Validation Tests"); diff --git a/js/testAutomations/adrv9002/adrv9002DocTests.js b/js/testAutomations/adrv9002/adrv9002DocTests.js index a49ca4794a..96a588bea5 100644 --- a/js/testAutomations/adrv9002/adrv9002DocTests.js +++ b/js/testAutomations/adrv9002/adrv9002DocTests.js @@ -26,7 +26,7 @@ // Skipped: TST.ADRV9002.CONTROLS.DEVICE_DRIVER_API (no API for version string) // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite TestFramework.init("ADRV9002 Documentation Tests"); diff --git a/js/testAutomations/adrv9002/adrv9002Tests.js b/js/testAutomations/adrv9002/adrv9002Tests.js index 7121e9b287..f3ecbaceb5 100644 --- a/js/testAutomations/adrv9002/adrv9002Tests.js +++ b/js/testAutomations/adrv9002/adrv9002Tests.js @@ -22,7 +22,7 @@ // Runs all API tests: Connection, Global, RX Chain, RX Tracking, TX Chain, TX Tracking, ORX, Widget Access, Utility // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: ADRV9002 Plugin Tests TestFramework.init("ADRV9002 Plugin Tests"); diff --git a/js/testAutomations/adrv9002/adrv9002VisualTests.js b/js/testAutomations/adrv9002/adrv9002VisualTests.js index c19f5d04f6..a63e98d6a2 100644 --- a/js/testAutomations/adrv9002/adrv9002VisualTests.js +++ b/js/testAutomations/adrv9002/adrv9002VisualTests.js @@ -27,7 +27,7 @@ // ============================================================================ // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite TestFramework.init("ADRV9002 Visual Validation Tests"); diff --git a/js/testAutomations/common/testFramework.js b/js/testAutomations/common/testFramework.js index f0d41a7ecd..88a0d5a2cc 100644 --- a/js/testAutomations/common/testFramework.js +++ b/js/testAutomations/common/testFramework.js @@ -218,6 +218,21 @@ var TestFramework = { return this.failedTests === 0 ? 0 : 1; }, + // Supervised visual check - prompts user for pass/fail input + // Use this in VisualTests when validation requires human observation. + // Blocks until the user types 'y' (pass) or 'n' (fail). + supervisedCheck: function(description) { + printToConsole(" SUPERVISED CHECK: " + description); + var response = readFromConsole(" >> Pass? (y/n): "); + var passed = (response.trim().toLowerCase() === "y"); + if (passed) { + printToConsole(" PASS: Confirmed by user"); + } else { + printToConsole(" FAIL: Rejected by user"); + } + return passed; + }, + // Save test results to file saveResults: function(filePath) { try { diff --git a/js/testAutomations/core/connectionTests.js b/js/testAutomations/core/connectionTests.js index b6b3dd199e..5e5a910a0f 100644 --- a/js/testAutomations/core/connectionTests.js +++ b/js/testAutomations/core/connectionTests.js @@ -25,7 +25,7 @@ // TST.DEV.SELECT_TOOL, TST.DEV.ADD_ORDER, TST.DEV.MULTI_CONN, TST.DEV.RM_MULTI // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: Connection Tests TestFramework.init("Connection Lifecycle Tests"); diff --git a/js/testAutomations/core/emulatorTests.js b/js/testAutomations/core/emulatorTests.js index d9b38cad2f..57f535c7c4 100644 --- a/js/testAutomations/core/emulatorTests.js +++ b/js/testAutomations/core/emulatorTests.js @@ -26,7 +26,7 @@ // Prerequisite: iio-emu must be running externally for most tests // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: Emulator Tests TestFramework.init("Emulator Connection Tests"); diff --git a/js/testAutomations/core/pluginLoadTests.js b/js/testAutomations/core/pluginLoadTests.js index d99911c54a..c5048f13ed 100644 --- a/js/testAutomations/core/pluginLoadTests.js +++ b/js/testAutomations/core/pluginLoadTests.js @@ -30,7 +30,7 @@ // 6. Disconnects and cleans up // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: Plugin Load Tests TestFramework.init("Plugin Load Detection Tests"); diff --git a/js/testAutomations/generic-plugins/dataLogger/dataLoggerTests.js b/js/testAutomations/generic-plugins/dataLogger/dataLoggerTests.js index 1a2a659b3d..c4bdd52f1a 100644 --- a/js/testAutomations/generic-plugins/dataLogger/dataLoggerTests.js +++ b/js/testAutomations/generic-plugins/dataLogger/dataLoggerTests.js @@ -48,7 +48,7 @@ // ============================================================================ // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Helper function to parse newline-separated string into array function parseNewlineSeparatedString(str) { diff --git a/js/testAutomations/generic-plugins/dataLogger/dataLoggerVisualTests.js b/js/testAutomations/generic-plugins/dataLogger/dataLoggerVisualTests.js index 146b01f384..c8d948fa5c 100644 --- a/js/testAutomations/generic-plugins/dataLogger/dataLoggerVisualTests.js +++ b/js/testAutomations/generic-plugins/dataLogger/dataLoggerVisualTests.js @@ -44,7 +44,7 @@ // ============================================================================ // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Helper function to parse newline-separated string into array function parseNewlineSeparatedString(str) { diff --git a/js/testAutomations/generic-plugins/debugger/debuggerTests.js b/js/testAutomations/generic-plugins/debugger/debuggerTests.js index 3e494c1df8..7a2a43f47a 100644 --- a/js/testAutomations/generic-plugins/debugger/debuggerTests.js +++ b/js/testAutomations/generic-plugins/debugger/debuggerTests.js @@ -22,7 +22,7 @@ // Tests: TST.DBG.EXPLR.LOAD, TST.DBG.EXPLR.NAV, TST.DBG.EXPLR.FILTER, TST.DBG.EXPLR.WATCH, TST.DBG.EXPLR.READ_ALL, TST.DBG.EXPLR.LOG, TST.DBG.CODEGEN // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: Debugger Tests TestFramework.init("Debugger Plugin Tests"); diff --git a/js/testAutomations/generic-plugins/registerMap/registerMapTests.js b/js/testAutomations/generic-plugins/registerMap/registerMapTests.js index cb0eef6f38..f46e6f9049 100644 --- a/js/testAutomations/generic-plugins/registerMap/registerMapTests.js +++ b/js/testAutomations/generic-plugins/registerMap/registerMapTests.js @@ -23,7 +23,7 @@ // Based on TST.REGMAP.* test specifications // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Global wait time configuration // Set to 1000 for normal testing, can be increased for external observation diff --git a/js/testAutomations/generic-plugins/registerMap/registerMapVisualTests.js b/js/testAutomations/generic-plugins/registerMap/registerMapVisualTests.js index 283a5a88e3..3840b912c6 100644 --- a/js/testAutomations/generic-plugins/registerMap/registerMapVisualTests.js +++ b/js/testAutomations/generic-plugins/registerMap/registerMapVisualTests.js @@ -34,7 +34,7 @@ // ============================================================================ // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite TestFramework.init("Register Map Visual Validation Tests"); diff --git a/js/testAutomations/m2k/digitalIO/dio_loopback.js b/js/testAutomations/m2k/digitalIO/dio_loopback.js index 7bce912a93..fd3659a456 100644 --- a/js/testAutomations/m2k/digitalIO/dio_loopback.js +++ b/js/testAutomations/m2k/digitalIO/dio_loopback.js @@ -35,7 +35,7 @@ // mode cannot be set from JS. Group test simulates group behavior using // individual pin operations. -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); var waitTime = 1000; diff --git a/js/testAutomations/m2k/digitalIO/dio_voltmeter.js b/js/testAutomations/m2k/digitalIO/dio_voltmeter.js index db497f8928..c58a993f6c 100644 --- a/js/testAutomations/m2k/digitalIO/dio_voltmeter.js +++ b/js/testAutomations/m2k/digitalIO/dio_voltmeter.js @@ -32,7 +32,7 @@ // Step 10 (reversed: DIO 8→1+, DIO 1→V+) requires different wiring // and is in dio_voltmeter_reversed.js. -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); var waitTime = 1000; diff --git a/js/testAutomations/m2k/digitalIO/dio_voltmeter_reversed.js b/js/testAutomations/m2k/digitalIO/dio_voltmeter_reversed.js index 9a42cc17aa..5b25e554b0 100644 --- a/js/testAutomations/m2k/digitalIO/dio_voltmeter_reversed.js +++ b/js/testAutomations/m2k/digitalIO/dio_voltmeter_reversed.js @@ -30,7 +30,7 @@ // NOTE: No DIO loopback wires. DIO 8 and DIO 1 are each connected // to separate instruments (voltmeter and power supply). -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); var waitTime = 1000; diff --git a/js/testAutomations/m2k/oscilloscope/osc_siggen_loopback.js b/js/testAutomations/m2k/oscilloscope/osc_siggen_loopback.js index 19db605023..2e9ced9bd1 100644 --- a/js/testAutomations/m2k/oscilloscope/osc_siggen_loopback.js +++ b/js/testAutomations/m2k/oscilloscope/osc_siggen_loopback.js @@ -61,7 +61,7 @@ // - Known C++ bug: setCursorH2 uses getHBar1() instead of getHBar2() // - Known C++ bug: setTriggerSource has guard idx > 0, cannot set to index 0 -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); TestFramework.init("Oscilloscope + Signal Generator Loopback Tests"); diff --git a/js/testAutomations/m2k/powerSupply/ps_voltmeter_loopback.js b/js/testAutomations/m2k/powerSupply/ps_voltmeter_loopback.js index ce5c8d4f07..eb407d6dd2 100644 --- a/js/testAutomations/m2k/powerSupply/ps_voltmeter_loopback.js +++ b/js/testAutomations/m2k/powerSupply/ps_voltmeter_loopback.js @@ -37,7 +37,7 @@ // - power.sync = false --> independent mode, power.sync = true --> tracking mode // - power.dac2_value can only be set when sync = false (independent mode) -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); TestFramework.init("Power Supply + Voltmeter Loopback Tests"); diff --git a/js/testAutomations/m2k/signalGenerator/signalGeneratorOscilloscopeTests.js b/js/testAutomations/m2k/signalGenerator/signalGeneratorOscilloscopeTests.js index f962b0e60f..c7010d89f2 100644 --- a/js/testAutomations/m2k/signalGenerator/signalGeneratorOscilloscopeTests.js +++ b/js/testAutomations/m2k/signalGenerator/signalGeneratorOscilloscopeTests.js @@ -23,7 +23,7 @@ // Based on TST.M2K.SG.* test specifications // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: Signal Generator + Oscilloscope Integration Tests TestFramework.init("Signal Generator + Oscilloscope Tests"); diff --git a/js/testAutomations/m2k/spectrumAnalyzer/sa_loopback.js b/js/testAutomations/m2k/spectrumAnalyzer/sa_loopback.js index e0d93decdd..7c92b2b9e9 100644 --- a/js/testAutomations/m2k/spectrumAnalyzer/sa_loopback.js +++ b/js/testAutomations/m2k/spectrumAnalyzer/sa_loopback.js @@ -31,7 +31,7 @@ // - Scope CH2+ → W2 (Signal Generator Output 2) // - Scope CH2- → GND -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); TestFramework.init("Spectrum Analyzer Loopback Tests"); diff --git a/js/testAutomations/m2k/voltmeter/voltmeter_dc_differential.js b/js/testAutomations/m2k/voltmeter/voltmeter_dc_differential.js index 66f05ccc5b..b3586cd666 100644 --- a/js/testAutomations/m2k/voltmeter/voltmeter_dc_differential.js +++ b/js/testAutomations/m2k/voltmeter/voltmeter_dc_differential.js @@ -28,7 +28,7 @@ // // Differential measurement: Ch1 measures V+ minus V- -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); TestFramework.init("Voltmeter DC Differential Tests"); diff --git a/js/testAutomations/m2k/voltmeter/voltmeter_dc_loopback.js b/js/testAutomations/m2k/voltmeter/voltmeter_dc_loopback.js index db8e733c55..e3d6565831 100644 --- a/js/testAutomations/m2k/voltmeter/voltmeter_dc_loopback.js +++ b/js/testAutomations/m2k/voltmeter/voltmeter_dc_loopback.js @@ -29,7 +29,7 @@ // // Ch1 measures V+ (positive), Ch2 measures V- (negative) -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); TestFramework.init("Voltmeter DC Loopback Tests"); diff --git a/js/testAutomations/m2k/voltmeter/voltmeter_dc_reversed.js b/js/testAutomations/m2k/voltmeter/voltmeter_dc_reversed.js index 1b67db7725..ba236f9d82 100644 --- a/js/testAutomations/m2k/voltmeter/voltmeter_dc_reversed.js +++ b/js/testAutomations/m2k/voltmeter/voltmeter_dc_reversed.js @@ -29,7 +29,7 @@ // // Reversed loopback. Ch1 measures V- (negative), Ch2 measures V+ (positive). -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); TestFramework.init("Voltmeter DC Reversed Polarity Tests"); diff --git a/js/testAutomations/pqm/pqmTests.js b/js/testAutomations/pqm/pqmTests.js index d0f78328d9..18f5417192 100644 --- a/js/testAutomations/pqm/pqmTests.js +++ b/js/testAutomations/pqm/pqmTests.js @@ -22,7 +22,7 @@ // Runs all instrument tests: RMS, Harmonics, Waveform, Settings // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: PQM Plugin Complete Tests TestFramework.init("PQM Plugin Complete Tests"); diff --git a/js/testAutomations/swiot/swiotSupervisedTests.js b/js/testAutomations/swiot/swiotSupervisedTests.js index 0a18fee11f..c520328816 100644 --- a/js/testAutomations/swiot/swiotSupervisedTests.js +++ b/js/testAutomations/swiot/swiotSupervisedTests.js @@ -23,7 +23,7 @@ // Based on test documentation from docs/tests/plugins/swiot1l/swiot1l_tests.rst // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: SWIOT Supervised Tests TestFramework.init("SWIOT Plugin Supervised Tests"); diff --git a/js/testAutomations/swiot/swiotTests.js b/js/testAutomations/swiot/swiotTests.js index a736476c45..1430e9397c 100644 --- a/js/testAutomations/swiot/swiotTests.js +++ b/js/testAutomations/swiot/swiotTests.js @@ -23,7 +23,7 @@ // Based on test documentation from docs/tests/plugins/swiot1l/swiot1l_tests.rst // Load test framework -evaluateFile("../js/testAutomations/common/testFramework.js"); +evaluateFile("js/testAutomations/common/testFramework.js"); // Test Suite: SWIOT Plugin Complete Tests TestFramework.init("SWIOT Plugin Complete Tests");