aboutsummaryrefslogtreecommitdiff
path: root/unittests
diff options
context:
space:
mode:
authorJan200101 <sentrycraft123@gmail.com>2023-01-23 21:41:43 +0100
committerJussi Pakkanen <jpakkane@gmail.com>2023-08-08 14:53:43 -0700
commitb91244c3b7f77578d601502628bceb9e92183387 (patch)
treefa7656867fd7a32922d30003c528e697f0c19ebf /unittests
parent3de0f6d4e94036646321859b9287faba6e99f050 (diff)
downloadmeson-b91244c3b7f77578d601502628bceb9e92183387.zip
meson-b91244c3b7f77578d601502628bceb9e92183387.tar.gz
meson-b91244c3b7f77578d601502628bceb9e92183387.tar.bz2
correct cmakedefine behavior
- allow defines with leading whitespace - always do replacement for cmakedefine - output boolean value for cmakedefine01 - correct unittests for cmakedefine - add cmakedefine specific unittests
Diffstat (limited to 'unittests')
-rw-r--r--unittests/allplatformstests.py38
1 files changed, 35 insertions, 3 deletions
diff --git a/unittests/allplatformstests.py b/unittests/allplatformstests.py
index 7f38d4b..f7fb1b0 100644
--- a/unittests/allplatformstests.py
+++ b/unittests/allplatformstests.py
@@ -153,20 +153,33 @@ class AllPlatformTests(BasePlatformTests):
(result, missing_variables, confdata_useless) = do_conf_str('configuration_file', in_data, confdata, variable_format = vformat)
return '\n'.join(result)
- def check_formats(confdata, result):
+ def check_meson_format(confdata, result):
self.assertEqual(conf_str(['#mesondefine VAR'], confdata, 'meson'), result)
+
+ def check_cmake_format_simple(confdata, result):
+ self.assertEqual(conf_str(['#cmakedefine VAR'], confdata, 'cmake'), result)
+
+ def check_cmake_formats_full(confdata, result):
self.assertEqual(conf_str(['#cmakedefine VAR ${VAR}'], confdata, 'cmake'), result)
self.assertEqual(conf_str(['#cmakedefine VAR @VAR@'], confdata, 'cmake@'), result)
+ def check_formats(confdata, result):
+ check_meson_format(confdata, result)
+ check_cmake_formats_full(confdata, result)
+
confdata = ConfigurationData()
# Key error as they do not exists
check_formats(confdata, '/* #undef VAR */\n')
# Check boolean
confdata.values = {'VAR': (False, 'description')}
- check_formats(confdata, '#undef VAR\n')
+ check_meson_format(confdata, '#undef VAR\n')
+ check_cmake_formats_full(confdata, '/* #undef VAR */\n')
+
confdata.values = {'VAR': (True, 'description')}
- check_formats(confdata, '#define VAR\n')
+ check_meson_format(confdata, '#define VAR\n')
+ check_cmake_format_simple(confdata, '#define VAR\n')
+ check_cmake_formats_full(confdata, '#define VAR 1\n')
# Check string
confdata.values = {'VAR': ('value', 'description')}
@@ -176,6 +189,25 @@ class AllPlatformTests(BasePlatformTests):
confdata.values = {'VAR': (10, 'description')}
check_formats(confdata, '#define VAR 10\n')
+ # Checking if cmakedefine behaves as it does with cmake
+ confdata.values = {'VAR': ("var", 'description')}
+ self.assertEqual(conf_str(['#cmakedefine VAR @VAR@'], confdata, 'cmake@'), '#define VAR var\n')
+
+ confdata.values = {'VAR': (True, 'description')}
+ self.assertEqual(conf_str(['#cmakedefine01 VAR'], confdata, 'cmake'), '#define VAR 1\n')
+
+ confdata.values = {'VAR': (0, 'description')}
+ self.assertEqual(conf_str(['#cmakedefine01 VAR'], confdata, 'cmake'), '#define VAR 0\n')
+ confdata.values = {'VAR': (False, 'description')}
+ self.assertEqual(conf_str(['#cmakedefine01 VAR'], confdata, 'cmake'), '#define VAR 0\n')
+
+ confdata.values = {}
+ self.assertEqual(conf_str(['#cmakedefine01 VAR'], confdata, 'cmake'), '#define VAR 0\n')
+ self.assertEqual(conf_str(['#cmakedefine VAR @VAR@'], confdata, 'cmake@'), '/* #undef VAR */\n')
+
+ confdata.values = {'VAR': (5, 'description')}
+ self.assertEqual(conf_str(['#cmakedefine VAR'], confdata, 'cmake'), '#define VAR\n')
+
# Check multiple string with cmake formats
confdata.values = {'VAR': ('value', 'description')}
self.assertEqual(conf_str(['#cmakedefine VAR xxx @VAR@ yyy @VAR@'], confdata, 'cmake@'), '#define VAR xxx value yyy value\n')