Skip to content

Commit 1083c87

Browse files
authored
[meta] Test consistency of resolvetypedef / truetypename
With tests, avoids regressions for #13274 and #12698, now fixed.
1 parent c466c85 commit 1083c87

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

roottest/root/meta/naming/execResolveTypedef.cxx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#include <stdio.h>
22
#include <TClassEdit.h>
3+
#include <TClass.h>
4+
#include <cstdint>
35

46
// See also roottest/meta/naming/execCheckNaming.C
57

@@ -12,6 +14,20 @@
1214

1315
namespace A1 { namespace B2 { namespace C3 { typedef int what; } } }
1416
namespace NS { typedef int IntNS_t; }
17+
namespace SG { typedef std::uint32_t sgkey_t; }
18+
namespace RT {
19+
namespace EX {
20+
struct ClusterSize {
21+
using ValueType = std::uint64_t;
22+
ValueType fValue;
23+
};
24+
using ClusterSize_t = ClusterSize;
25+
}
26+
}
27+
28+
struct PackedParameters {
29+
SG::sgkey_t m_sgkey;
30+
};
1531

1632
class Object
1733
{
@@ -207,5 +223,9 @@ int execResolveTypedef()
207223
testing("::int",TClassEdit::ResolveTypedef("::Int_t"));
208224
// Add an example like pair<...::type_t,int>
209225

226+
testing("unsigned int", TClassEdit::ResolveTypedef("SG::sgkey_t"));
227+
testing("unsigned int", TClass::GetClass("PackedParameters")->GetDataMember("m_sgkey")->GetTrueTypeName());
228+
testing("SG::sgkey_t", TClass::GetClass("PackedParameters")->GetDataMember("m_sgkey")->GetFullTypeName());
229+
testing("RT::EX::ClusterSize", TClassEdit::ResolveTypedef("RT::EX::ClusterSize_t"));
210230
return 0;
211231
}

roottest/root/meta/naming/execResolveTypedef.ref

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,8 @@ Test 80 The result is correct: ::int
8484
Test 81 The result is correct: ::Unknown
8585
Test 82 The result is correct: ::SomeTypedefName_tSF
8686
Test 83 The result is correct: ::int
87+
Test 84 The result is correct: unsigned int
88+
Test 85 The result is correct: unsigned int
89+
Test 86 The result is correct: SG::sgkey_t
90+
Test 87 The result is correct: RT::EX::ClusterSize
8791
(int) 0

0 commit comments

Comments
 (0)