mirror of
https://github.com/cpm-cmake/CPM.cmake.git
synced 2025-11-18 15:17:30 -05:00
* Initial commit for integration tests. Experimental. Playing with potential syntax
* Some experimental code to setup tests
* Piecewise building of CMakeLists
* First check
* Alternative approach. Using ruby's test/unit
* Parse CMakeCache. Separate lib
* First integration test
* Latest Format.cmake. Passing style
* Allow user-provided integration test dir. Allow reuse
* Separate class with utils for cache (no longer pure Hash)
* Allow running of tests from any dir
* Add integration tests to CI
* Use an in-source integration test directory
* Allow relative integration test dir from env
* Custom assertion for a success of CommandResult
* Windows-latest-latest
* Enrich CMakeCache class with more CPM data
* Added test for CPM-specific CMakeCache values
* Style
* Style
* test_update_single_package
* WiP for source cache test
* Small source_cache test
* Style
* Moved env clean to cleanup to make setup methods simpler (not require super)
* WiP for integration test documentation
* WiP for integration test documentation
* Project file creation tweaks
* Split docs into multiple files. Complete tutorial. Reference.
* Tips
* Typo
* Setup Ruby inistead of requiring windows-2022
* Revert "Setup Ruby inistead of requiring windows-2022"
This reverts commit 8aa2732145.
57 lines
1.9 KiB
Ruby
57 lines
1.9 KiB
Ruby
require_relative './lib'
|
|
|
|
# Tests of cpm caches and vars when no packages are used
|
|
|
|
class Basics < IntegrationTest
|
|
# Test cpm caches with no cpm-related env vars
|
|
def test_cpm_default
|
|
prj = make_project 'no-deps'
|
|
prj.create_lists_from_default_template
|
|
assert_success prj.configure
|
|
|
|
@cache = prj.read_cache
|
|
|
|
assert_empty @cache.packages
|
|
|
|
assert_same_path TestLib::CPM_PATH, check_and_get('CPM_FILE')
|
|
assert_same_path File.dirname(TestLib::CPM_PATH), check_and_get('CPM_DIRECTORY')
|
|
|
|
assert_equal 'OFF', check_and_get('CPM_DRY_RUN')
|
|
assert_equal 'CPM:', check_and_get('CPM_INDENT')
|
|
assert_equal '1.0.0-development-version', check_and_get('CPM_VERSION')
|
|
|
|
assert_equal 'OFF', check_and_get('CPM_SOURCE_CACHE', 'PATH')
|
|
assert_equal 'OFF', check_and_get('CPM_DOWNLOAD_ALL', 'BOOL')
|
|
assert_equal 'OFF', check_and_get('CPM_LOCAL_PACKAGES_ONLY', 'BOOL')
|
|
assert_equal 'OFF', check_and_get('CPM_USE_LOCAL_PACKAGES', 'BOOL')
|
|
assert_equal 'OFF', check_and_get('CPM_USE_NAMED_CACHE_DIRECTORIES', 'BOOL')
|
|
|
|
assert_equal 'OFF', check_and_get('CPM_DONT_CREATE_PACKAGE_LOCK', 'BOOL')
|
|
assert_equal 'OFF', check_and_get('CPM_INCLUDE_ALL_IN_PACKAGE_LOCK', 'BOOL')
|
|
assert_same_path File.join(prj.bin_dir, 'cpm-package-lock.cmake'), check_and_get('CPM_PACKAGE_LOCK_FILE')
|
|
|
|
assert_equal 'OFF', check_and_get('CPM_DONT_UPDATE_MODULE_PATH', 'BOOL')
|
|
assert_same_path File.join(prj.bin_dir, 'CPM_modules'), check_and_get('CPM_MODULE_PATH')
|
|
end
|
|
|
|
# Test when env CPM_SOURCE_CACHE is set
|
|
def test_env_cpm_source_cache
|
|
ENV['CPM_SOURCE_CACHE'] = cur_test_dir
|
|
|
|
prj = make_project 'no-deps'
|
|
prj.create_lists_from_default_template
|
|
assert_success prj.configure
|
|
|
|
@cache = prj.read_cache
|
|
|
|
assert_equal cur_test_dir, check_and_get('CPM_SOURCE_CACHE', 'PATH')
|
|
end
|
|
|
|
def check_and_get(key, type = 'INTERNAL')
|
|
e = @cache.entries[key]
|
|
assert_not_nil e, key
|
|
assert_equal type, e.type, key
|
|
e.val
|
|
end
|
|
end
|