build: (fixes #808) handle profile setting changes in the first ns3 run
This commit is contained in:
5
ns3
5
ns3
@@ -595,6 +595,11 @@ def configure_cmake(cmake, args, current_cmake_cache_folder, current_cmake_gener
|
||||
for (cmake_flag, option_name) in options:
|
||||
arg = on_off_condition(args, cmake_flag, option_name)
|
||||
if arg:
|
||||
is_on = "=ON" in arg
|
||||
reverse = arg.replace("=ON" if is_on else "=OFF",
|
||||
"=OFF" if is_on else "=ON")
|
||||
if reverse in cmake_args:
|
||||
cmake_args.remove(reverse)
|
||||
cmake_args.append(arg)
|
||||
|
||||
if args.lcov_zerocounters is not None:
|
||||
|
||||
@@ -596,6 +596,30 @@ class NS3ConfigureBuildProfileTestCase(unittest.TestCase):
|
||||
self.assertEqual(return_code, 2)
|
||||
self.assertIn("invalid choice: 'OPTIMIZED'", stderr)
|
||||
|
||||
def test_06_OverwriteDefaultSettings(self):
|
||||
"""!
|
||||
Replace settings set by default (e.g. ASSERT/LOGs enabled in debug builds and disabled in default ones)
|
||||
@return None
|
||||
"""
|
||||
return_code, _, _ = run_ns3("clean")
|
||||
self.assertEqual(return_code, 0)
|
||||
|
||||
return_code, stdout, stderr = run_ns3("configure -G \"{generator}\" --dry-run -d debug")
|
||||
self.assertEqual(return_code, 0)
|
||||
self.assertIn("-DCMAKE_BUILD_TYPE=debug -DNS3_ASSERT=ON -DNS3_LOG=ON -DNS3_WARNINGS_AS_ERRORS=ON -DNS3_NATIVE_OPTIMIZATIONS=OFF", stdout)
|
||||
|
||||
return_code, stdout, stderr = run_ns3("configure -G \"{generator}\" --dry-run -d debug --disable-asserts --disable-logs --disable-werror")
|
||||
self.assertEqual(return_code, 0)
|
||||
self.assertIn("-DCMAKE_BUILD_TYPE=debug -DNS3_NATIVE_OPTIMIZATIONS=OFF -DNS3_ASSERT=OFF -DNS3_LOG=OFF -DNS3_WARNINGS_AS_ERRORS=OFF", stdout)
|
||||
|
||||
return_code, stdout, stderr = run_ns3("configure -G \"{generator}\" --dry-run")
|
||||
self.assertEqual(return_code, 0)
|
||||
self.assertIn("-DCMAKE_BUILD_TYPE=default -DNS3_ASSERT=ON -DNS3_LOG=ON -DNS3_WARNINGS_AS_ERRORS=OFF -DNS3_NATIVE_OPTIMIZATIONS=OFF", stdout)
|
||||
|
||||
return_code, stdout, stderr = run_ns3("configure -G \"{generator}\" --dry-run --enable-asserts --enable-logs --enable-werror")
|
||||
self.assertEqual(return_code, 0)
|
||||
self.assertIn("-DCMAKE_BUILD_TYPE=default -DNS3_ASSERT=ON -DNS3_LOG=ON -DNS3_NATIVE_OPTIMIZATIONS=OFF -DNS3_ASSERT=ON -DNS3_LOG=ON -DNS3_WARNINGS_AS_ERRORS=ON", stdout)
|
||||
|
||||
|
||||
class NS3BaseTestCase(unittest.TestCase):
|
||||
"""!
|
||||
|
||||
Reference in New Issue
Block a user