diff options
author | Lukas Larsson <[email protected]> | 2012-11-09 15:54:26 +0100 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2012-11-09 15:54:26 +0100 |
commit | 668c4263148fdb346ad2d9cd9fcede7e0c9dad6a (patch) | |
tree | 8d26d989d4b7b903ae96f4f34c3de279cd3a7ee1 /lib | |
parent | 9604cf9378dc240d9be36d3785bfbd9731437f03 (diff) | |
parent | 22698424dbc6efec84d71234b60290b3937f2f28 (diff) | |
download | otp-668c4263148fdb346ad2d9cd9fcede7e0c9dad6a.tar.gz otp-668c4263148fdb346ad2d9cd9fcede7e0c9dad6a.tar.bz2 otp-668c4263148fdb346ad2d9cd9fcede7e0c9dad6a.zip |
Merge branch 'lukas/common_test/multi_require_bug/OTP-10572' into maint
* lukas/common_test/multi_require_bug/OTP-10572:
Fix bug where require of same name at same config would return name in use
Diffstat (limited to 'lib')
-rw-r--r-- | lib/common_test/src/ct_config.erl | 3 | ||||
-rw-r--r-- | lib/common_test/test/ct_config_SUITE.erl | 1 | ||||
-rw-r--r-- | lib/common_test/test/ct_config_SUITE_data/config/test/config_static_SUITE.erl | 10 |
3 files changed, 12 insertions, 2 deletions
diff --git a/lib/common_test/src/ct_config.erl b/lib/common_test/src/ct_config.erl index 30bf5925c0..06a8e12f55 100644 --- a/lib/common_test/src/ct_config.erl +++ b/lib/common_test/src/ct_config.erl @@ -532,7 +532,8 @@ do_require(Name,Key) -> case get_key_from_name(Name) of {error,_} -> allocate(Name,Key); - {ok,Key} -> + {ok,NameKey} when NameKey == Key; + is_tuple(Key) andalso element(1,Key) == NameKey -> %% already allocated - check that it has all required subkeys R = make_ref(), case get_config(Key,R,[]) of diff --git a/lib/common_test/test/ct_config_SUITE.erl b/lib/common_test/test/ct_config_SUITE.erl index 0b1abae757..1e1df908db 100644 --- a/lib/common_test/test/ct_config_SUITE.erl +++ b/lib/common_test/test/ct_config_SUITE.erl @@ -251,6 +251,7 @@ expected_events(config_static_SUITE)-> ?sok(test_alias_tclocal_nested,{14,0,{2,1}}), ?sok(test_alias_tclocal_nested_backward_compat,{15,0,{2,1}}), ?sok(test_alias_tclocal_nested_backward_compat_subvals,{16,0,{2,1}}), + ?sok(test_config_same_name_already_in_use,{17,0,{2,1}}), {?eh,tc_start,{config_static_SUITE,end_per_suite}}, {?eh,tc_done,{config_static_SUITE,end_per_suite,ok}}, {?eh,test_done,{'DEF','STOP_TIME'}}, diff --git a/lib/common_test/test/ct_config_SUITE_data/config/test/config_static_SUITE.erl b/lib/common_test/test/ct_config_SUITE_data/config/test/config_static_SUITE.erl index 2e1ad651e8..19f1dab4af 100644 --- a/lib/common_test/test/ct_config_SUITE_data/config/test/config_static_SUITE.erl +++ b/lib/common_test/test/ct_config_SUITE_data/config/test/config_static_SUITE.erl @@ -64,7 +64,8 @@ all() -> [test_get_config_simple, test_get_config_nested, test_shadow_all,test_element,test_shadow_all_element, test_internal_deep, test_alias_tclocal_nested, test_alias_tclocal_nested_backward_compat, - test_alias_tclocal_nested_backward_compat_subvals + test_alias_tclocal_nested_backward_compat_subvals, + test_config_same_name_already_in_use ]. init_per_testcase(_,Config) -> @@ -124,6 +125,13 @@ test_config_name_already_in_use2(_) -> ct:fail("Test should've been skipped, you shouldn't see this!"), ok. + +test_config_same_name_already_in_use() -> + []. +test_config_same_name_already_in_use(_) -> + ok = ct:require(x2,{gen_cfg,c}), + ok = ct:require(x2,{gen_cfg,c}). + %% test aliases test_alias_tclocal() -> [{require,newalias,gen_cfg}]. |