Commit graph

38 commits

Author SHA1 Message Date
Nick Bolton
6399feb324
Solve low hanging reliability and maintainability issues (#7403)
* Add missing atom ctor init

* Init members with `None`

* Use in-class init and delcare getter inside if init

* Temp revert of changes ahead of unit test repair

* Move IPC header to shared, restore X clipboard test, simplify test cmake, new X clipboard unit test

* Suppress sonar for undefs

* Remove base dir include

* Revert "Temp revert of changes ahead of unit test repair"

This reverts commit 8f84b6ea5d5828f1be1362de3809279bcacb8cc8.

* Use new accessor

* Use default dtor

* Beef up to 32 core

* Use enum class

* Make IPC protocol headers const at all levels

* Use enum class and const char for better type safety

* Use unique_ptr for m_clipboard

* Use `-j` instead of `-j8` to utilize full parallelism

* Increase thread count for sonar-scanner

* Use 32 threads

* Use in-class init for IpcClientProxy members

* Use const instead of #define

* Remove ctor member inits

* Use unique_ptr on win

* Implement temp bin dir for windows with more robust post-build copy

* Fixed missing iostream

* Add warning about copy errors

* Only run clean-gcda on Linux

* Use in-class init for IPC mutex

* Do no-op on Windows

* Hide clean-gcda task

* Move flakey test to integtests

* Delete dead code

* Test

* Temp disable post_config_all

* Disable post config step

* Revert "Disable post config step"

This reverts commit 2f956a7714ba9bedacd4b39d4ae00940c3d565d6.

* Revert "Temp disable post_config_all"

This reverts commit b44ed72e44f838bfe1309f6e9672d2f1c6f21b75.

* Restore -j8

* Simplify error handling

* Use const for test port

* Remove python check

* Update changelog

* Fixed order

* Fixed bad issue number

* Fixed bin copy source path

* Remove redundant except
2024-07-18 08:04:39 +01:00
Nick Bolton
47849db4d9
Run Valgrind on unit tests in CI to detect memory leaks (#7401)
* Move QApplication out of main to reduce memory impact when running individual tests

* Add --valgrind arg and colorize output when command returns non-zero exit code

* Fixed: colorama not always available

* Test multiple Qt tests

* Fixed: Windows Qt test failing due to missing QCoreApplication

* Simplify fake args for Qt

* Use --ci-env arg

* Create Valgrind analysis workflow

* Rename vars for fake args

* Parse and output valgrind summary

* Add build mode to comment

* Use GITHUB_OUTPUT to output summary

* Merge valgrind comment

* Improve comment

* Use `tee` instead of `--log-file` to also print stdout

* Improve comment about debug and release

* Simplify output writing in parse step

* Improve step name

* Correct comment about summaries

* Remove commented out code

* Better var name

* Missing copyright

* Rename global to shared

* Remove space

* Revert change to ConfigTests.cpp
2024-07-17 09:22:46 +01:00
Nick Bolton
c8d9707857
Re-implement packaging for GitHub workflows (Linux) (#7361)
* Reorganize CMake Packaging module

* Match if statements to function order

* Cleanup root, res, and doc dirs

* Move deps to requirements.txt file

* Reorganize and format CMake files

* Rename changelog lint

* Add reccomended extension

* Workflow to lint CMake files

* Move CMake lint to script

* Try lighter dep

* Use venv

* Add --format arg

* Format all CMake files

* Convert bash script to Python

* Set CMake line ending format

* Restore formatting

* Add pyyaml dep

* Remove unused arg

* Rename config file

* Remove comment

* Repair copyrights (broken by defualt cmake-format)

* Restore 3rd party copyright

* Break up libs config into smaller macros

* Better macro name

* Load config after venv

* Make intentional noop clearer

* Only use upload step if required (make skip clearer)

* Use CPack for deb and rpm packaging

* Add upload step for Linux

* Remove cpack dep, doesn't exist

* Roll back presets version

* Fixed distro like match

* Update ChangeLog

* Legacy checkout for some distros

* All distros support v4

* Trying out newer Linux distros

* Install Git on Docker images

* Install without actions (not available before checkout)

* Delete useless action

* Install Python

* Support for Arch and OpenSUSE

* Add Arch and OpenSUSE to deps

* Name steps

* Full OpenSUSE names

* Mark Git dir safe

* Add pkgconf

* Legacy CMake for Debian 11

* Add OpenSSL to OpenSUSE

* Drop OpenSUSE Leap (no C++20 support)

* Skip packaging for Arch and OpenSUSE (for now)

* Shorten Arch/OpenSUSE names

* Clearer step name

* SImpler bootstrap

* Shell not needed

* Update apt

* Don't check return code

* Simplify python deps commands

* Add STGZ/.sh package type

* Prevent input prompt

* Only config git safe dir when needed

* Try cache v4

* Safe dir for Ubuntu

* Safe dir for Arch

* All Docker images seem to need safe dir config

* Refactor env var getters

* Make Ubuntu build extra packages

* Condense bootstep to single step

* Fixed var name

* Fixed bootstrap logic

* Simplify logic for upload condition (Windows and macOS)

* Make package/upload condition easier to understand

* Add Manjaro

* Generic names for Linux .tar.gz and .sh packages

* Add Manjaro deps

* Swap macOS matrix entries

* Add Red Hat UBI

* Remove RHEL subscription manager

* Throw on unsupported package distro

* Conditionally install pip and venv

* Remove extra pip arg

* Add config for RHEL

* Install EPEL for RHEL

* Back-out RHEL as EPEL requires subscription

* Restore Python deps logic

* Fixed bug: Packacking run twice

* Testing arm32v7 and arm64v8

* Revert "Testing arm32v7 and arm64v8"

This reverts commit cb3caf188d2b79ed083a62fc091de295f9889f3d.

* Re-add icon and shortcut file for Linux to package

* Support OpenSUSE RPM build

* Check return code

* Add `rpm-build` for OpenSUSE

* Reorg packages

* Remove busybox-which

* Add --non-interactive

* Move --non-interactive to correct position

* Experiment with makepkg

* Check and print package commands

* Make distro version optional

* Use 8 cores to build

* Default to distro name only

* Fixed bad PKGBUILD filename

* Use 4-part version for Arch

* Remove comma from conflicts

* Use .tar.gz from cwd

* Generate checksum for Arch

* Fixed file extension

* Use shell to print output

* Don't use shell

* Gaurd against bad cmd_utils.run

* Fixed bad import

* Use list command

* Fixed unable to run list commands

* Use source file name

* Simplify PKGBUILD to use make install

* Change install prefix

* Use DESTDIR

* Copy .desktop and .png to build dir

* Restore original `install(FILES...`

* Improving comments

* Fixed: makepkg runs from `src` by default

* Move error after command print

* Remove shell arg

* Package as a user instead of root (makepkg can't run as root)

* Fixed codesign runs in shell

* Allow list commands in shell on windows

* Don't use sudo on arch

* Install sudo on Arch

* Fixed typo

* Fix ownership of build directory for package user

* Improve example .env

* Change to depend on libstdc++6

* Add TODO

* Fixed Fedora version

* Remove libstdc++ deps (names vary between distros)

* Roll back to Fedora 40 and 39

* Improve comment

* Remove unneccesary default
2024-07-02 11:23:56 +01:00
Nick Bolton
bec38ab47b
Re-implement packaging for GitHub workflows (Windows) (#7360)
* Add new version env vars to example

* Remove test file

* Move CMake packaging to separate module and configure OpenSSL path for Windows

* Make VS Code CMake build task default

* Generate Microsoft-friendly 4-digit version number

* Update macOS bundle .plist with build year variable

* Use correct OpenSSL path and fixed various MSI variables

* Use correct rest/dist dir for MSI

* Add version .rc file for Windows

* Use macro instead of over-complicated version query command

* Made cmd_utils more secure by defaulting to no-shell and no-print

* Add certificate management module

* Implement packaging script on Windows

* Refactor Mac packaging script to use new cmd_utils args and new cert module

* Update ChangeLog

* Change PFX env vars and add to CI

* Use import as instead of from lib to solve resolve issue

* Allow custom certificate extensions

* Check for package version when using gdrive

* Make version number required

* Add missing shell

* Add missing gdrive value in test

* Find OpenSSL dir based on openssl binary

* Only use first OpenSSL entry

* More verbose logging

* Improve logging

* Only use env var if not empty

* Fixed wrong var

* Fixed macOS GitHub artefact name

* Change filename format to match new convention
2024-06-28 09:35:18 +00:00
Nick Bolton
7103bbed6d
Re-implement CI auto version increment for packaging (#7354)
* Only install Python deps with deps script

* Remove hard-coded Qt version in CI

* Add example .env

* Improve comments in .env file

* Simplify config reader and Choco CI config

* Actually return the config value

* Move deps before Qt version env call

* Remove `self.`

* Move venv ensure to main

* Fixed arg

* Move config import to function

* Move ensure_module to function

* Simplify over-complicated `Version.cmake`

* Move code to `github` module

* Use `symless/next-version-action`

* Make CMake version file even simpler

* Set version from tag

* Create release when master or release branch

* Don't run CI on master push, only release

* Fixed bac macro

* Use new version values

* Handle empty version env var

* Also strip version file value

* Remove quotes

* Add @master to action

* Read version from file

* Simplify version file read

* Fixed typo in env var

* Remove unused var

* Delete legacy build number action

* Fixed env var

* Version file read shouldn't be needed

* Remove weird and unnecessary include path

* Update ChangeLog

* Remove unused config value

* Better name for changelog check

* Delete broken Flatpak CI

* Run stale issue cron at midnight

* Update ChangeLog

* Add version input for manual run

* Print next version

* Fetch all tags

* Use more idiomatic approach

* Set to pre-release when master

* Remove unnecessary `commitish`

* Fixed wrong ID

* More specific IDs

* Reduce config needed for upload

* Only /release can be non-pre-release

* More discreet package path for gdrive

* Try without setting path

* Remove seemly unused step

* Better name for Qt version step

* Fixed bad var ref

* Better name for package dir

* Fixed bad input name

* Add missing shell

* Workflow to test upload action

* Remove fetch tags

* Use bash to cut version

* Remove name and make conditional

* Replace deprecated set-output

* Fixed env var name

* Missing dir sep char

* Add comment to test workflow

* Improve input descriptions

* Replace deprecated set-output
2024-06-26 15:46:42 +00:00
Kyle Bloom
54cb817de8
OpenSSL find package (#6952)
* Change cmake to use find_package for openssl

* Change cmake prefix paths

* Fix Qt prefix path

* Limit static to apple

* Re-add qt bin path

* Fix use of apple cmake variable

* Update ChangeLog

* Update CMake prefix path for mac and windows tests

* Fix windows test

* Seems to fix mac test

* Brew defined prefix paths

* Explicitly ensure all homebrew dependencies
2021-03-03 14:04:39 +03:00
Kyle Bloom
70d67040b7
Revert openssl changes (#6926)
* Revert "Core builds (#6908)"

This reverts commit 4c7456d3cc.

* Re-add minor gitignore changes

* Re-add buildCoreWindows script

* Re-add synergy no legacy flag

* Minor format fix

* Revert openssl checksums

* Remove enhancement

* Install python-pip for gcovr

* Fix mixed tabs and spaces
2021-01-26 13:36:39 +02:00
Kyle Bloom
4c7456d3cc
Core builds (#6908)
* Fix formatting in CMakeLists

* Add SYNERGY_NO_LEGACY environment flag

* Add build script for Windows

* Find_package for OpenSSL

* Move build scrits to scripts folder

* Add macOS and Linux build scripts

* Add environment variable

* Compile core with static openssl

* Default builds to Release

* Streamline OpenSSL dependancies

* Remove openssl from repo

* Change actions to test actions

* Add zip creation to build scripts

* Re-add original tests

* Add action value output

* Build per platform on release

* Fix path for core build

* Temporarily keep artifacts

* Set execute flag

* Zip before archiving

* Static build only for windows

* Remove -m flag from zip

* Change zip to tar

* Fix workflow name

* Add hints to openssl on mac

* Fix zip files

* Fix verbose flag on tar

* Remove path on download artifacts

* Try an array of build targets

* Extract action binaries

* Install full openssl

* Add 32bit openssl

* Modify installer to use the openssl.exe from ext

* Install OpenSSL full for windows release build

* Add openssl installation during windows CI

* Modify changelog

* Add enhancments section

* Remove bottom line in changelog
2021-01-20 14:47:56 +00:00
Jamie Newbon
83d1588666 #6661 Updated google tests to 1.8.1 2020-07-01 14:12:44 +01:00
talyz
3e80a0bfc0
Build tests again
The tests were accidentally disabled in
688095d0a7. Since then, the code has
drifted slightly: the synergy lib has been renamed from synergy to
synlib in 4263fd1717 and the curl
dependency was dropped in 491bb2de00.

This re-enables the tests, targets the right lib and removes the
obsolete test.
2020-03-19 19:08:59 +01:00
Andrew Nelless
f7b87e0670 Remove version number from gtest/gmock paths 2017-02-09 22:30:42 +00:00
XinyuHou
deea23f866 Apply tab to spaces filter to src folder 2017-02-07 01:24:59 +00:00
Andrew Nelless
5db78acab4 #5628 Link Synergy core against OpenSSL 2016-09-29 13:05:04 +01:00
Andrew Nelless
c3c0913633 Update company copyright notice 2016-09-26 11:58:33 +01:00
Nigel Armstrong
d71304ee55 Modified header of every file COPYING to LICENSE
Modified to match the updated name of the license file
2015-05-06 22:12:44 -04:00
XinyuHou
80343c41eb deleted old home brew crypto #4313 2015-02-11 11:12:54 +00:00
Nick Bolton
41d6080028 changed company name in copyright notice 2014-11-11 13:52:03 +00:00
Nick Bolton
ab529fae41 combined windows and unix arch internet test, there can be only one! 2014-03-14 18:32:34 +00:00
Nick Bolton
ad8905ccbf fixed: silenced gtest warning on osx106 2014-02-28 13:56:07 +00:00
Nick Bolton
4675f29a4c code style fixes:
- reordered includes to prevent accidental dependencies.
- moved arch specific files into their own folder (easier to include with cmake).
- renamed non-class files to reflect new code style (lower case with underscores).
- using full relative paths for includes (easier for understanding dependencies).
- using #pragma once instead of classic-style header guards.
2014-02-28 12:36:45 +00:00
Nick Bolton
f11c660efb used glob instead of manually specifying files. cmake does not recommend this, but we always re-run cmake anyway after adding files since we use vs. 2014-02-26 17:46:02 +00:00
Nick Bolton
50a4f310c9 moved tools to ext - makes more sense, as it contains external libs, not tools 2014-02-26 16:52:54 +00:00
Nick Bolton
5ca1c17549 native unix http get for premium auth 2014-02-05 14:29:50 +00:00
Nick Bolton
7f08036ff3 native windows http get for premium auth 2014-02-04 19:41:29 +00:00
jerry
012fe6ddd8 - Log out dragging file's directory in Synergy (using COM shell extension)
- Change shell extension dll Main.cpp to synwinxt.cpp
2013-08-23 09:59:31 +00:00
jerry
dab838ed14 - renamed synrgyhk.dll to synwinhk.dll and moved lib code to separate folder.
- removed game device support (fallen into significant disrepair).
2013-08-02 13:21:06 +00:00
Nick Bolton
c368013f13 Patch by Jerry for issue 46:
- Unit test for sending file data from server to client.
- Removed singleton pattern from CSocketMultiplexer for easier unit testing.
- Incremented protocol version from 1.4 to 1.5 (new file chunk message).
- Storing pointer to CConfig instead of copying in CServer (so we can mock it).
- Created a common event queue for testing (timeout, quit event, etc).
- Fixed code style.
2013-07-16 19:02:30 +00:00
Nick Bolton
69db341660 added cursor show/hide test, and modified osx screen class to be more robust with memory usage. also fixed some bad code style. 2012-10-28 11:36:30 +00:00
Nick Bolton
7f6eca9eb4 corrected license and author attribution (cs 2002-2012, nb 2008-2012) 2012-09-04 02:09:56 +00:00
Nick Bolton
7d8fd5927d skeleton for new ipc code. 2012-06-28 07:29:06 +00:00
Nick Bolton
488241850c moving 1.4 to trunk 2012-06-10 16:50:54 +00:00
Nick Bolton
e65886857d removed trunk; please commit to (and build patches against) release branches instead. 2011-10-05 00:10:22 +00:00
Nick Bolton
2fe11744cf merged 1.4 r1043:1044 into trunk 2011-06-18 23:44:23 +00:00
Nick Bolton
5a315324ca merged 1.4 r1007:1008 into trunk 2011-05-21 00:30:08 +00:00
Nick Bolton
edeae477e1 implemented google mock config and gave it a quick try (see: add_newValue_writeWasCalled) 2011-05-07 02:12:09 +00:00
Nick Bolton
b5fa1a086e fixed gtest paths for linux 2011-04-28 12:10:57 +00:00
Nick Bolton
2155247425 split up bin and lib dirs from build dir 2011-04-28 10:42:36 +00:00
Nick Bolton
40b5a98790 moved integ and unit tests into test dir 2011-04-28 10:24:02 +00:00
Renamed from src/integtests/CMakeLists.txt (Browse further)