Commit Graph

16 Commits

Author SHA1 Message Date
irene d551f41b41 feat: switch iperf3 to JNI with 3.19 source
- Switch from bundled iperf3 binary (Process.start) to JNI compilation
- iperf3 3.21 source API was incompatible (start_time, iperf_strerror, etc.)
- iperf3 3.19 source is proven to work (used by CellularLab)
- CMakeLists.txt updated: config.h generated into cpp/iperf/ for correct include paths
- iperf_jni.c fixed for 3.19 API (no start_time on iperf_test)
- getTestProgress() returns g_test->duration as fallback (no real-time elapsed tracking yet)
- NDK CMake pinned to 3.22.1
- UI layer updated: removed Iperf3BinaryPathProvider references
- Tests updated: TestRunViewModelTest matches new service interface
- pubspec.yaml: removed iperf3 assets bundle, added http dependency
- AndroidManifest: INTERNET permission (needed for hostname resolution)
2026-08-25 13:46:33 +09:00
irene 27e8e50469 feat: add INTERNET permission to AndroidManifest
Required for iperf3 client mode to resolve hostnames and connect to servers. Without this, the app silently fails to make network connections.
2026-08-24 13:11:37 +09:00
irene 11ada3e5a8 fix: use runInShell=false for iperf3 binary execution and add logging
CI / Analyze & Test (push) Failing after 27s
- Android toybox ash cannot exec ELF binaries even with -rwx permissions
- runInShell: true wraps in /system/bin/sh -c which refuses ELF
- runInShell: false calls execve() directly, bypassing sh
- Added debugPrint logging to capture actual output in logcat
2026-08-24 11:38:34 +09:00
irene d5cd8177b2 docs: add test output excerpt to implementation plan
CI / Analyze & Test (push) Failing after 31s
2026-08-24 10:47:45 +09:00
irene 909d7c707e docs: add on-device verification results to implementation plan
CI / Analyze & Test (push) Failing after 36s
- Added static analysis results (flutter analyze + flutter test)
- Added on-device test results from Sony XQ-AS72 (QV7100JQ52)
- iperf3 v3.21 executes successfully without permission errors
- Raw output displayed in text box, status shows 'Test complete'
2026-08-24 10:46:30 +09:00
irene 369e42d06a fix: use /system/bin/sh for chmod to fix iperf3 binary permission on Android
CI / Analyze & Test (push) Failing after 31s
- The original chmod call used Process.run('chmod', ...) which fails on Android
  because chmod is not available in the app sandbox PATH
- /system/bin/sh is always present on Android and can execute chmod on the
  extracted binary, setting executable permissions before the first run
2026-08-24 10:22:16 +09:00
irene dc41c82d43 fix: move MainActivity to match package namespace com.novoyuuparosk.iperf3gui
CI / Analyze & Test (push) Failing after 38s
- Move MainActivity.kt from novoyuuparosk.iperf3gui to
  com.novoyuuparosk.iperf3gui package directory
- Update package declaration to match namespace
- This fixes the ClassNotFoundException crash on launch
2026-08-24 09:02:24 +09:00
irene ae627c437f fix: sync namespace with applicationId to match package name
CI / Analyze & Test (push) Failing after 41s
2026-08-24 08:45:17 +09:00
irene 7488e1458c docs: update implementation plan to mark all tasks completed
CI / Analyze & Test (push) Failing after 37s
2026-08-24 08:38:29 +09:00
irene 6c3ebf72c6 feat: bundle iperf3 v3.21 binaries from davidBar-On/android-iperf3
CI / Analyze & Test (push) Failing after 35s
- Add arm64-v8a and armeabi-v7a iperf3.21 binaries
- Update pubspec.yaml with assets section
- Update README with binary source information
2026-08-24 08:35:59 +09:00
irene 3ba11330cc feat: add CI workflow and update README
CI / Analyze & Test (push) Failing after 2m25s
- Add GitHub Actions CI workflow for analyze and tests
- Update README with project structure, build instructions, and license info
- Document iperf3 binary bundling process
2026-08-24 08:24:39 +09:00
irene 815fc48a15 refactor: fix lint issues and wire up main screen
- Use const Iperf3Result constructor in tests
- Remove unused import from widget_test.dart
- Fix unnecessary underscore warnings in Consumer builders
- Use initializing formal for iperf3Service field
- Wire up main.dart to call Iperf3BinaryPathProvider.initialize()
2026-08-24 06:51:06 +09:00
irene a6922b6a27 feat: add TestRunViewModel with state management 2026-08-24 06:43:37 +09:00
irene ef194af782 feat: add domain models for test configuration and results 2026-08-24 06:41:47 +09:00
irene 5a7c36a798 chore: scaffold Flutter project with com.novoyuuparosk.iperf3gui package 2026-08-24 06:37:11 +09:00
irene 5bc59a9c61 Initial commit 2026-08-23 21:30:02 +00:00