hyper-wireless 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,160 @@
1
+ Metadata-Version: 2.4
2
+ Name: hyper-wireless
3
+ Version: 1.0.0
4
+ Summary: Hyper Wireless - Cloud Testing Platform for 3GPP 5G NR Conformance
5
+ Author-email: Hyper Wireless Team <dev@hyper-wireless.com>
6
+ Project-URL: Homepage, https://hyper-wireless.com
7
+ Project-URL: Dashboard, https://app.hyper-wireless.com
8
+ Project-URL: API, https://cloud-api.hyper-wireless.com
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Topic :: Software Development :: Testing
11
+ Classifier: Topic :: System :: Networking
12
+ Requires-Python: >=3.8
13
+ Description-Content-Type: text/markdown
14
+ Requires-Dist: requests>=2.28.0
15
+ Requires-Dist: websockets>=12.0
16
+
17
+ # TTCPP (TTCN-3 C++ Test Suite)
18
+
19
+ ## Overview
20
+
21
+ **TTCPP** is a C++ implementation of the 3GPP 5G test suite, originally written in TTCN-3. It is designed to test the 5G UE stack (specifically using `srsRAN_5G`'s `srsue` implementation). By transpiling the TTCN-3 test cases and components into C++, TTCPP offers a native, performant environment for 5G testing, completely bypassing the need for a traditional TTCN-3 compiler or heavy runtime environment.
22
+
23
+ The test suite acts as the network (AMF/gNB) and communicates with the Device Under Test (DUT), the `srsue` stack (packaged as `ttcn3_dut`), exchanging RRC, NAS, and IP packets to validate compliance against 3GPP specifications (such as TS 24.501 and TS 38.331).
24
+
25
+ ## Key Features
26
+
27
+ - **Native C++ Execution:** The test cases are transpiled from TTCN-3 to modern C++ (`src/TTCN_TestSuite`), enabling standard debugging (GDB, LLDB) and high performance.
28
+ - **5G UE Testing:** Directly integrates with `srsRAN_5G` to validate UE behavior.
29
+ - **Custom Port Handlers:** C++ implementations for standard TTCN-3 port operations (handling sockets, threading, and system-level IPC) in `src/components/` and `src/common/`.
30
+ - **Message Sequence Charts (MSC):** Automatic parsing of test logs to render visual sequence diagrams of test execution.
31
+ - **Web GUI:** A modern Next.js-based graphical dashboard for managing, executing, and reviewing tests.
32
+
33
+ ## Directory Structure
34
+
35
+ - `src/` - Source code for the transpiled test suite, custom components, codecs, and security algorithms.
36
+ - `src/suites/<version>/` - Isolated C++ transpiled test suite packages (e.g. `NR5GC_IWD_25wk50`).
37
+ - `src/TTCN_TestSuite/` - Symlink pointing to the active suite's transpiled modules.
38
+ - `src/components/` - TTCN-3 port and component handlers.
39
+ - `src/main.cpp` - The entry point for the `ttcn3_runner` test executor.
40
+ - `ttcn/` - Contains raw TTCN-3 packages organized by deliverable version (e.g. `ttcn/NR5GC_IWD_25wk50/`).
41
+ - `configs/` - Modular configuration repository:
42
+ - `configs/transpiler/` - Base transpiler configurations and transforms for `TTCN3-X`.
43
+ - `configs/suites/` - Per-suite transpiler overlay configurations.
44
+ - `configs/modulepars/` - Per-suite module parameters (PICS/PIXIT).
45
+ - `srsRAN_5G/` - The full-stack 5G RAN and UE source code repository, which compiles the `ttcn3_dut` UE simulator executable.
46
+ - `tools/` - Utility scripts and tools.
47
+ - `tools/suite_manager.py` - Test suite version manager (list, info, switch, transpile).
48
+ - `logs/` - Directory where test execution logs and artifacts are stored.
49
+ - `usim.cfg` - Configuration for the simulated USIM (Home PLMN, Equivalent PLMNs, etc.).
50
+
51
+ ## Prerequisites & System Dependencies
52
+
53
+ To compile and run the test suite (specifically the virtual USIM smartcard integration), the following system dependencies and packages are required:
54
+
55
+ ### 1. Host Packages
56
+ Install PC/SC daemon, PCSC-Lite development headers, and tools:
57
+ ```bash
58
+ sudo apt-get install pcscd libpcsclite-dev pcsc-tools
59
+ ```
60
+
61
+ ### 2. Virtual Smartcard Simulator (`onomondo-uicc`)
62
+ - Implements the softsim smartcard that simulates physical UICC/USIM behavior over PC/SC.
63
+ - Should be cloned and built in a sibling directory (e.g., `../onomondo-uicc` relative to this repository). Respository URL: https://github.com/onomondo/onomondo-uicc.git
64
+ - The test runner defaults to this sibling directory, but you can override it by exporting the `ONOMONDO_UICC_DIR` environment variable.
65
+ - Ensure it is compiled before running tests:
66
+ ```bash
67
+ cd ../onomondo-uicc
68
+ make # or standard build commands for softsim
69
+ ```
70
+
71
+ ### 3. SIM Card Configuration Utility (`pySim`)
72
+ - Used by the test suite to configure the softsim smartcard (programming IMSIs, security parameters, resetting SQNs, etc.).
73
+ - Should be set up in a sibling directory (e.g., `../pysim` relative to this repository). Respository URL: https://github.com/osmocom/pysim.git
74
+ - The test runner defaults to this sibling directory, but you can override it by exporting the `PYSIM_DIR` environment variable.
75
+ - Ensure the virtual environment and requirements are prepared:
76
+ ```bash
77
+ cd ../pysim
78
+ python3 -m venv venv
79
+ ./venv/bin/pip install -r requirements.txt
80
+ ```
81
+
82
+ ## Building the Project
83
+
84
+ This project uses CMake for its build system. Only the LLVM Clang compiler is supported for building the C++ test runner due to GCC's high CPU consumption during parallel compilation.
85
+
86
+ ### 1. Build the C++ Test Runner (`ttcn3_runner`)
87
+ Configure and build the runner using the Clang preset:
88
+ ```bash
89
+ cmake --preset clang
90
+ cmake --build build-clang -j$(nproc) --target ttcn3_runner
91
+ ```
92
+
93
+ ### 2. Build the UE Simulator (`ttcn3_dut`)
94
+ Build the simulator inside the `srsRAN_5G` subdirectory:
95
+ ```bash
96
+ cd srsRAN_5G
97
+ mkdir -p build
98
+ cd build
99
+ cmake .. -G Ninja -DENABLE_TTCN3=ON -DENABLE_TTCN3_NR=ON
100
+ ninja ttcn3_dut
101
+ ```
102
+
103
+ ## Managing TTCN-3 Test Suite Versions
104
+
105
+ TTCPP supports multiple co-existing versions of the 3GPP TTCN-3 test suite. Use `./tools/suite_manager.py` to inspect, switch, and transpile test suite versions:
106
+
107
+ ```bash
108
+ # List all available raw and transpiled test suite versions
109
+ ./tools/suite_manager.py list
110
+
111
+ # View detailed information about a specific suite
112
+ ./tools/suite_manager.py info NR5GC_IWD_25wk50
113
+
114
+ # Switch the active test suite profile
115
+ ./tools/suite_manager.py switch NR5GC_IWD_25wk50
116
+
117
+ # Transpile a new TTCN-3 deliverable package
118
+ ./tools/suite_manager.py transpile NR5GC_IWD_26wk08
119
+ ```
120
+
121
+ ## Running Tests
122
+
123
+ Test execution is orchestrated using the provided bash script, `./tools/scripts/run_test.sh`. This script handles launching the `ttcn3_dut` and the `ttcn3_runner` processes, establishing their communication via sockets.
124
+
125
+ To run a specific test case (using the active suite):
126
+ ```bash
127
+ ./tools/scripts/run_test.sh <TEST_CASE_NAME>
128
+
129
+ # Example:
130
+ ./tools/scripts/run_test.sh TC_6_1_1_1_NR5GC
131
+ ```
132
+
133
+ To run a test case against a specific test suite version:
134
+ ```bash
135
+ ./tools/scripts/run_test.sh --suite NR5GC_IWD_25wk50 TC_6_1_1_1_NR5GC
136
+ ```
137
+
138
+ Test logs (such as `tc_runner.log` and `ttcn3_ue.log`) will be populated in a subfolder corresponding to the test case inside the `logs/` directory (e.g., `logs/<TEST_CASE_NAME>/`).
139
+
140
+ ## Upper Tester (UT) Integration
141
+
142
+ The test suite orchestrates testcase execution and logs via Upper Tester (UT) interface messages exchanged between the runner (`ttcn3_runner`) and the simulator (`ttcn3_dut`).
143
+
144
+ In addition to standard MMI commands, the runner sends the following native UT control messages:
145
+ - **`TC_START`**: Sent at the start of a test run to initialize the simulator's logging sink and parameterize the simulator logs (e.g., `logs/<TEST_CASE_NAME>/<TEST_CASE_NAME>_run0_ttcn3_ue.log`) dynamically with the active testcase name.
146
+ - JSON payload: `{"Cmd": {"TC_START": {"Name": "<TEST_CASE_NAME>"}}}`
147
+ - **`TC_END`**: Sent at the end of a test run to finalize the simulator's test case context.
148
+ - JSON payload: `{"Cmd": {"TC_END": null}}`
149
+
150
+ ## GUI Dashboard
151
+
152
+ A graphical web dashboard is provided to easily manage test execution, view historical test runs, and visualize signaling logs using Mermaid.js MSCs.
153
+
154
+ To start the GUI:
155
+ ```bash
156
+ cd tools/gui
157
+ npm install
158
+ npm run dev
159
+ ```
160
+ Navigate to `http://localhost:3000` to access the dashboard.
@@ -0,0 +1,144 @@
1
+ # TTCPP (TTCN-3 C++ Test Suite)
2
+
3
+ ## Overview
4
+
5
+ **TTCPP** is a C++ implementation of the 3GPP 5G test suite, originally written in TTCN-3. It is designed to test the 5G UE stack (specifically using `srsRAN_5G`'s `srsue` implementation). By transpiling the TTCN-3 test cases and components into C++, TTCPP offers a native, performant environment for 5G testing, completely bypassing the need for a traditional TTCN-3 compiler or heavy runtime environment.
6
+
7
+ The test suite acts as the network (AMF/gNB) and communicates with the Device Under Test (DUT), the `srsue` stack (packaged as `ttcn3_dut`), exchanging RRC, NAS, and IP packets to validate compliance against 3GPP specifications (such as TS 24.501 and TS 38.331).
8
+
9
+ ## Key Features
10
+
11
+ - **Native C++ Execution:** The test cases are transpiled from TTCN-3 to modern C++ (`src/TTCN_TestSuite`), enabling standard debugging (GDB, LLDB) and high performance.
12
+ - **5G UE Testing:** Directly integrates with `srsRAN_5G` to validate UE behavior.
13
+ - **Custom Port Handlers:** C++ implementations for standard TTCN-3 port operations (handling sockets, threading, and system-level IPC) in `src/components/` and `src/common/`.
14
+ - **Message Sequence Charts (MSC):** Automatic parsing of test logs to render visual sequence diagrams of test execution.
15
+ - **Web GUI:** A modern Next.js-based graphical dashboard for managing, executing, and reviewing tests.
16
+
17
+ ## Directory Structure
18
+
19
+ - `src/` - Source code for the transpiled test suite, custom components, codecs, and security algorithms.
20
+ - `src/suites/<version>/` - Isolated C++ transpiled test suite packages (e.g. `NR5GC_IWD_25wk50`).
21
+ - `src/TTCN_TestSuite/` - Symlink pointing to the active suite's transpiled modules.
22
+ - `src/components/` - TTCN-3 port and component handlers.
23
+ - `src/main.cpp` - The entry point for the `ttcn3_runner` test executor.
24
+ - `ttcn/` - Contains raw TTCN-3 packages organized by deliverable version (e.g. `ttcn/NR5GC_IWD_25wk50/`).
25
+ - `configs/` - Modular configuration repository:
26
+ - `configs/transpiler/` - Base transpiler configurations and transforms for `TTCN3-X`.
27
+ - `configs/suites/` - Per-suite transpiler overlay configurations.
28
+ - `configs/modulepars/` - Per-suite module parameters (PICS/PIXIT).
29
+ - `srsRAN_5G/` - The full-stack 5G RAN and UE source code repository, which compiles the `ttcn3_dut` UE simulator executable.
30
+ - `tools/` - Utility scripts and tools.
31
+ - `tools/suite_manager.py` - Test suite version manager (list, info, switch, transpile).
32
+ - `logs/` - Directory where test execution logs and artifacts are stored.
33
+ - `usim.cfg` - Configuration for the simulated USIM (Home PLMN, Equivalent PLMNs, etc.).
34
+
35
+ ## Prerequisites & System Dependencies
36
+
37
+ To compile and run the test suite (specifically the virtual USIM smartcard integration), the following system dependencies and packages are required:
38
+
39
+ ### 1. Host Packages
40
+ Install PC/SC daemon, PCSC-Lite development headers, and tools:
41
+ ```bash
42
+ sudo apt-get install pcscd libpcsclite-dev pcsc-tools
43
+ ```
44
+
45
+ ### 2. Virtual Smartcard Simulator (`onomondo-uicc`)
46
+ - Implements the softsim smartcard that simulates physical UICC/USIM behavior over PC/SC.
47
+ - Should be cloned and built in a sibling directory (e.g., `../onomondo-uicc` relative to this repository). Respository URL: https://github.com/onomondo/onomondo-uicc.git
48
+ - The test runner defaults to this sibling directory, but you can override it by exporting the `ONOMONDO_UICC_DIR` environment variable.
49
+ - Ensure it is compiled before running tests:
50
+ ```bash
51
+ cd ../onomondo-uicc
52
+ make # or standard build commands for softsim
53
+ ```
54
+
55
+ ### 3. SIM Card Configuration Utility (`pySim`)
56
+ - Used by the test suite to configure the softsim smartcard (programming IMSIs, security parameters, resetting SQNs, etc.).
57
+ - Should be set up in a sibling directory (e.g., `../pysim` relative to this repository). Respository URL: https://github.com/osmocom/pysim.git
58
+ - The test runner defaults to this sibling directory, but you can override it by exporting the `PYSIM_DIR` environment variable.
59
+ - Ensure the virtual environment and requirements are prepared:
60
+ ```bash
61
+ cd ../pysim
62
+ python3 -m venv venv
63
+ ./venv/bin/pip install -r requirements.txt
64
+ ```
65
+
66
+ ## Building the Project
67
+
68
+ This project uses CMake for its build system. Only the LLVM Clang compiler is supported for building the C++ test runner due to GCC's high CPU consumption during parallel compilation.
69
+
70
+ ### 1. Build the C++ Test Runner (`ttcn3_runner`)
71
+ Configure and build the runner using the Clang preset:
72
+ ```bash
73
+ cmake --preset clang
74
+ cmake --build build-clang -j$(nproc) --target ttcn3_runner
75
+ ```
76
+
77
+ ### 2. Build the UE Simulator (`ttcn3_dut`)
78
+ Build the simulator inside the `srsRAN_5G` subdirectory:
79
+ ```bash
80
+ cd srsRAN_5G
81
+ mkdir -p build
82
+ cd build
83
+ cmake .. -G Ninja -DENABLE_TTCN3=ON -DENABLE_TTCN3_NR=ON
84
+ ninja ttcn3_dut
85
+ ```
86
+
87
+ ## Managing TTCN-3 Test Suite Versions
88
+
89
+ TTCPP supports multiple co-existing versions of the 3GPP TTCN-3 test suite. Use `./tools/suite_manager.py` to inspect, switch, and transpile test suite versions:
90
+
91
+ ```bash
92
+ # List all available raw and transpiled test suite versions
93
+ ./tools/suite_manager.py list
94
+
95
+ # View detailed information about a specific suite
96
+ ./tools/suite_manager.py info NR5GC_IWD_25wk50
97
+
98
+ # Switch the active test suite profile
99
+ ./tools/suite_manager.py switch NR5GC_IWD_25wk50
100
+
101
+ # Transpile a new TTCN-3 deliverable package
102
+ ./tools/suite_manager.py transpile NR5GC_IWD_26wk08
103
+ ```
104
+
105
+ ## Running Tests
106
+
107
+ Test execution is orchestrated using the provided bash script, `./tools/scripts/run_test.sh`. This script handles launching the `ttcn3_dut` and the `ttcn3_runner` processes, establishing their communication via sockets.
108
+
109
+ To run a specific test case (using the active suite):
110
+ ```bash
111
+ ./tools/scripts/run_test.sh <TEST_CASE_NAME>
112
+
113
+ # Example:
114
+ ./tools/scripts/run_test.sh TC_6_1_1_1_NR5GC
115
+ ```
116
+
117
+ To run a test case against a specific test suite version:
118
+ ```bash
119
+ ./tools/scripts/run_test.sh --suite NR5GC_IWD_25wk50 TC_6_1_1_1_NR5GC
120
+ ```
121
+
122
+ Test logs (such as `tc_runner.log` and `ttcn3_ue.log`) will be populated in a subfolder corresponding to the test case inside the `logs/` directory (e.g., `logs/<TEST_CASE_NAME>/`).
123
+
124
+ ## Upper Tester (UT) Integration
125
+
126
+ The test suite orchestrates testcase execution and logs via Upper Tester (UT) interface messages exchanged between the runner (`ttcn3_runner`) and the simulator (`ttcn3_dut`).
127
+
128
+ In addition to standard MMI commands, the runner sends the following native UT control messages:
129
+ - **`TC_START`**: Sent at the start of a test run to initialize the simulator's logging sink and parameterize the simulator logs (e.g., `logs/<TEST_CASE_NAME>/<TEST_CASE_NAME>_run0_ttcn3_ue.log`) dynamically with the active testcase name.
130
+ - JSON payload: `{"Cmd": {"TC_START": {"Name": "<TEST_CASE_NAME>"}}}`
131
+ - **`TC_END`**: Sent at the end of a test run to finalize the simulator's test case context.
132
+ - JSON payload: `{"Cmd": {"TC_END": null}}`
133
+
134
+ ## GUI Dashboard
135
+
136
+ A graphical web dashboard is provided to easily manage test execution, view historical test runs, and visualize signaling logs using Mermaid.js MSCs.
137
+
138
+ To start the GUI:
139
+ ```bash
140
+ cd tools/gui
141
+ npm install
142
+ npm run dev
143
+ ```
144
+ Navigate to `http://localhost:3000` to access the dashboard.
@@ -0,0 +1,35 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "hyper-wireless"
7
+ version = "1.0.0"
8
+ description = "Hyper Wireless - Cloud Testing Platform for 3GPP 5G NR Conformance"
9
+ readme = "README.md"
10
+ requires-python = ">=3.8"
11
+ authors = [
12
+ { name = "Hyper Wireless Team", email = "dev@hyper-wireless.com" }
13
+ ]
14
+ classifiers = [
15
+ "Programming Language :: Python :: 3",
16
+ "Topic :: Software Development :: Testing",
17
+ "Topic :: System :: Networking",
18
+ ]
19
+ dependencies = [
20
+ "requests>=2.28.0",
21
+ "websockets>=12.0",
22
+ ]
23
+
24
+ [project.urls]
25
+ Homepage = "https://hyper-wireless.com"
26
+ Dashboard = "https://app.hyper-wireless.com"
27
+ API = "https://cloud-api.hyper-wireless.com"
28
+
29
+ [project.scripts]
30
+ hyper-wireless = "ttcn3_cloud_cli:main"
31
+ hyper = "ttcn3_cloud_cli:main"
32
+
33
+ [tool.setuptools]
34
+ py-modules = ["ttcn3_cloud_cli"]
35
+ package-dir = {"" = "tools"}
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,160 @@
1
+ Metadata-Version: 2.4
2
+ Name: hyper-wireless
3
+ Version: 1.0.0
4
+ Summary: Hyper Wireless - Cloud Testing Platform for 3GPP 5G NR Conformance
5
+ Author-email: Hyper Wireless Team <dev@hyper-wireless.com>
6
+ Project-URL: Homepage, https://hyper-wireless.com
7
+ Project-URL: Dashboard, https://app.hyper-wireless.com
8
+ Project-URL: API, https://cloud-api.hyper-wireless.com
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Topic :: Software Development :: Testing
11
+ Classifier: Topic :: System :: Networking
12
+ Requires-Python: >=3.8
13
+ Description-Content-Type: text/markdown
14
+ Requires-Dist: requests>=2.28.0
15
+ Requires-Dist: websockets>=12.0
16
+
17
+ # TTCPP (TTCN-3 C++ Test Suite)
18
+
19
+ ## Overview
20
+
21
+ **TTCPP** is a C++ implementation of the 3GPP 5G test suite, originally written in TTCN-3. It is designed to test the 5G UE stack (specifically using `srsRAN_5G`'s `srsue` implementation). By transpiling the TTCN-3 test cases and components into C++, TTCPP offers a native, performant environment for 5G testing, completely bypassing the need for a traditional TTCN-3 compiler or heavy runtime environment.
22
+
23
+ The test suite acts as the network (AMF/gNB) and communicates with the Device Under Test (DUT), the `srsue` stack (packaged as `ttcn3_dut`), exchanging RRC, NAS, and IP packets to validate compliance against 3GPP specifications (such as TS 24.501 and TS 38.331).
24
+
25
+ ## Key Features
26
+
27
+ - **Native C++ Execution:** The test cases are transpiled from TTCN-3 to modern C++ (`src/TTCN_TestSuite`), enabling standard debugging (GDB, LLDB) and high performance.
28
+ - **5G UE Testing:** Directly integrates with `srsRAN_5G` to validate UE behavior.
29
+ - **Custom Port Handlers:** C++ implementations for standard TTCN-3 port operations (handling sockets, threading, and system-level IPC) in `src/components/` and `src/common/`.
30
+ - **Message Sequence Charts (MSC):** Automatic parsing of test logs to render visual sequence diagrams of test execution.
31
+ - **Web GUI:** A modern Next.js-based graphical dashboard for managing, executing, and reviewing tests.
32
+
33
+ ## Directory Structure
34
+
35
+ - `src/` - Source code for the transpiled test suite, custom components, codecs, and security algorithms.
36
+ - `src/suites/<version>/` - Isolated C++ transpiled test suite packages (e.g. `NR5GC_IWD_25wk50`).
37
+ - `src/TTCN_TestSuite/` - Symlink pointing to the active suite's transpiled modules.
38
+ - `src/components/` - TTCN-3 port and component handlers.
39
+ - `src/main.cpp` - The entry point for the `ttcn3_runner` test executor.
40
+ - `ttcn/` - Contains raw TTCN-3 packages organized by deliverable version (e.g. `ttcn/NR5GC_IWD_25wk50/`).
41
+ - `configs/` - Modular configuration repository:
42
+ - `configs/transpiler/` - Base transpiler configurations and transforms for `TTCN3-X`.
43
+ - `configs/suites/` - Per-suite transpiler overlay configurations.
44
+ - `configs/modulepars/` - Per-suite module parameters (PICS/PIXIT).
45
+ - `srsRAN_5G/` - The full-stack 5G RAN and UE source code repository, which compiles the `ttcn3_dut` UE simulator executable.
46
+ - `tools/` - Utility scripts and tools.
47
+ - `tools/suite_manager.py` - Test suite version manager (list, info, switch, transpile).
48
+ - `logs/` - Directory where test execution logs and artifacts are stored.
49
+ - `usim.cfg` - Configuration for the simulated USIM (Home PLMN, Equivalent PLMNs, etc.).
50
+
51
+ ## Prerequisites & System Dependencies
52
+
53
+ To compile and run the test suite (specifically the virtual USIM smartcard integration), the following system dependencies and packages are required:
54
+
55
+ ### 1. Host Packages
56
+ Install PC/SC daemon, PCSC-Lite development headers, and tools:
57
+ ```bash
58
+ sudo apt-get install pcscd libpcsclite-dev pcsc-tools
59
+ ```
60
+
61
+ ### 2. Virtual Smartcard Simulator (`onomondo-uicc`)
62
+ - Implements the softsim smartcard that simulates physical UICC/USIM behavior over PC/SC.
63
+ - Should be cloned and built in a sibling directory (e.g., `../onomondo-uicc` relative to this repository). Respository URL: https://github.com/onomondo/onomondo-uicc.git
64
+ - The test runner defaults to this sibling directory, but you can override it by exporting the `ONOMONDO_UICC_DIR` environment variable.
65
+ - Ensure it is compiled before running tests:
66
+ ```bash
67
+ cd ../onomondo-uicc
68
+ make # or standard build commands for softsim
69
+ ```
70
+
71
+ ### 3. SIM Card Configuration Utility (`pySim`)
72
+ - Used by the test suite to configure the softsim smartcard (programming IMSIs, security parameters, resetting SQNs, etc.).
73
+ - Should be set up in a sibling directory (e.g., `../pysim` relative to this repository). Respository URL: https://github.com/osmocom/pysim.git
74
+ - The test runner defaults to this sibling directory, but you can override it by exporting the `PYSIM_DIR` environment variable.
75
+ - Ensure the virtual environment and requirements are prepared:
76
+ ```bash
77
+ cd ../pysim
78
+ python3 -m venv venv
79
+ ./venv/bin/pip install -r requirements.txt
80
+ ```
81
+
82
+ ## Building the Project
83
+
84
+ This project uses CMake for its build system. Only the LLVM Clang compiler is supported for building the C++ test runner due to GCC's high CPU consumption during parallel compilation.
85
+
86
+ ### 1. Build the C++ Test Runner (`ttcn3_runner`)
87
+ Configure and build the runner using the Clang preset:
88
+ ```bash
89
+ cmake --preset clang
90
+ cmake --build build-clang -j$(nproc) --target ttcn3_runner
91
+ ```
92
+
93
+ ### 2. Build the UE Simulator (`ttcn3_dut`)
94
+ Build the simulator inside the `srsRAN_5G` subdirectory:
95
+ ```bash
96
+ cd srsRAN_5G
97
+ mkdir -p build
98
+ cd build
99
+ cmake .. -G Ninja -DENABLE_TTCN3=ON -DENABLE_TTCN3_NR=ON
100
+ ninja ttcn3_dut
101
+ ```
102
+
103
+ ## Managing TTCN-3 Test Suite Versions
104
+
105
+ TTCPP supports multiple co-existing versions of the 3GPP TTCN-3 test suite. Use `./tools/suite_manager.py` to inspect, switch, and transpile test suite versions:
106
+
107
+ ```bash
108
+ # List all available raw and transpiled test suite versions
109
+ ./tools/suite_manager.py list
110
+
111
+ # View detailed information about a specific suite
112
+ ./tools/suite_manager.py info NR5GC_IWD_25wk50
113
+
114
+ # Switch the active test suite profile
115
+ ./tools/suite_manager.py switch NR5GC_IWD_25wk50
116
+
117
+ # Transpile a new TTCN-3 deliverable package
118
+ ./tools/suite_manager.py transpile NR5GC_IWD_26wk08
119
+ ```
120
+
121
+ ## Running Tests
122
+
123
+ Test execution is orchestrated using the provided bash script, `./tools/scripts/run_test.sh`. This script handles launching the `ttcn3_dut` and the `ttcn3_runner` processes, establishing their communication via sockets.
124
+
125
+ To run a specific test case (using the active suite):
126
+ ```bash
127
+ ./tools/scripts/run_test.sh <TEST_CASE_NAME>
128
+
129
+ # Example:
130
+ ./tools/scripts/run_test.sh TC_6_1_1_1_NR5GC
131
+ ```
132
+
133
+ To run a test case against a specific test suite version:
134
+ ```bash
135
+ ./tools/scripts/run_test.sh --suite NR5GC_IWD_25wk50 TC_6_1_1_1_NR5GC
136
+ ```
137
+
138
+ Test logs (such as `tc_runner.log` and `ttcn3_ue.log`) will be populated in a subfolder corresponding to the test case inside the `logs/` directory (e.g., `logs/<TEST_CASE_NAME>/`).
139
+
140
+ ## Upper Tester (UT) Integration
141
+
142
+ The test suite orchestrates testcase execution and logs via Upper Tester (UT) interface messages exchanged between the runner (`ttcn3_runner`) and the simulator (`ttcn3_dut`).
143
+
144
+ In addition to standard MMI commands, the runner sends the following native UT control messages:
145
+ - **`TC_START`**: Sent at the start of a test run to initialize the simulator's logging sink and parameterize the simulator logs (e.g., `logs/<TEST_CASE_NAME>/<TEST_CASE_NAME>_run0_ttcn3_ue.log`) dynamically with the active testcase name.
146
+ - JSON payload: `{"Cmd": {"TC_START": {"Name": "<TEST_CASE_NAME>"}}}`
147
+ - **`TC_END`**: Sent at the end of a test run to finalize the simulator's test case context.
148
+ - JSON payload: `{"Cmd": {"TC_END": null}}`
149
+
150
+ ## GUI Dashboard
151
+
152
+ A graphical web dashboard is provided to easily manage test execution, view historical test runs, and visualize signaling logs using Mermaid.js MSCs.
153
+
154
+ To start the GUI:
155
+ ```bash
156
+ cd tools/gui
157
+ npm install
158
+ npm run dev
159
+ ```
160
+ Navigate to `http://localhost:3000` to access the dashboard.
@@ -0,0 +1,9 @@
1
+ README.md
2
+ pyproject.toml
3
+ tools/ttcn3_cloud_cli.py
4
+ tools/hyper_wireless.egg-info/PKG-INFO
5
+ tools/hyper_wireless.egg-info/SOURCES.txt
6
+ tools/hyper_wireless.egg-info/dependency_links.txt
7
+ tools/hyper_wireless.egg-info/entry_points.txt
8
+ tools/hyper_wireless.egg-info/requires.txt
9
+ tools/hyper_wireless.egg-info/top_level.txt
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ hyper = ttcn3_cloud_cli:main
3
+ hyper-wireless = ttcn3_cloud_cli:main
@@ -0,0 +1,2 @@
1
+ requests>=2.28.0
2
+ websockets>=12.0
@@ -0,0 +1 @@
1
+ ttcn3_cloud_cli