Files
deskflow/scripts/tests.py
Nick Bolton 50d29edd05 Solve SonarCloud security hotspots and bugs (#7383)
* Test: allocLockCursorToScreenInfo_withState_setsState

* Merge remote-tracking branch 'origin/master' into S1-1717-sonarcloud-issues

* Remove header wrappers for gmock/gtest

* Convenience wrapper script for tests

* Use `std::copy` instead of `strcpy`

* Use `std::ranges::copy` instead of `stdcpy`

* Delete dead code

* Add guitests VS Code config and test wrapper

* Revert "Delete dead code"

This reverts commit aa40f5cd35a22b4b69acfd1876aceea053088060.

* Build guitests with CMake

* Run all tests

* Don't use --gtest_filter for Qt tests

* Undo skip for GUI tests

* Coverage for `IpcClient::sendCommand`

* Remove provider and proxy

* Use lamda for StreamProvider to reduce boilerplate

* Restore version checker tests

* Remove activation souces

* Tasks for current/all tests

* Change command for tasks

* Mock QNetworkAccessManager

* Create core app to satisfy Qt assertations

* Use `std::copy` instead of `std::ranges::copy`

* Remove integtests

* Merge guitests into unittests

* Use std::string::length

* Remove include (resolves to root)

* Fix memory leaks

* Disable sigsegv tests

* Fixed formatting

* Remove guitests from CI

* New MainWindowTests

* Passing test for MainWindowTests

* Use alternative to strlen in MainWindow::checkSecureSocket

* Passing test for Log::print

* Fixed dtor call order

* Fixed var name typo

* Use proxy instead of `#define protected public`

* Add args test for log

* Add license ctor

* Fixed log test for release

* Add error log test

* Init qt with -platform offscreen

* Back-out initQt function

* Use QT_QPA_PLATFORM

* Try QT_QPA_PLATFORM=offscreen

* Use more readable env node

* Set QT_QPA_PLATFORM in CI and CodeQL

* Remove env not needed

* Modernize Log::print

* Calculate the length of the format string fmt during the initial scan loop

* More direct and efficient alterative to `strlen`

* Fixed major maint issues in AppConfig

* New clang and cmake rules

* Set `max_pargs_hwrap` to 4

* Undo clang format for now

* Fix missing `Setting::`

* Fixed missing `m_S` on Windows

* Re-add accidental dep resolution (fix later)

* Fixed missing buffer position increment

* Turn on errors

* Fixed tests and improve error message

* Fixed segfault on log refactor

* Extract log time to function

* Copyright date

* Update ChangeLog
2024-07-16 08:30:35 +00:00

48 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python3
import argparse, os, sys
import lib.cmd_utils as cmd_utils
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--unit-tests", action="store_true")
parser.add_argument("--integ-tests", action="store_true")
parser.add_argument(
"--filter-file",
type=str,
help="Takes the base filename without extension and uses it as a filter",
)
parser.add_argument(
"--ignore-return-code",
action="store_true",
help="Ignore the return code of the test command",
)
args = parser.parse_args()
binary = get_binary_path(args)
if args.filter_file:
file_base = os.path.basename(args.filter_file)
without_ext = os.path.splitext(file_base)[0]
command = [binary, f"--gtest_filter={without_ext}*"]
else:
command = [binary]
result = cmd_utils.run(command, print_cmd=True, check=False)
if not args.ignore_return_code:
sys.exit(result.returncode)
def get_binary_path(args):
base_dir = "./build/bin"
if args.unit_tests:
return f"{base_dir}/unittests"
elif args.integ_tests:
return f"{base_dir}/integtests"
else:
raise RuntimeError("No test type specified")
if __name__ == "__main__":
main()