Skip to content

Commit 769bb97

Browse files
committed
[roottest] enable aclic/offset test in cmake
1 parent 894fbf9 commit 769bb97

File tree

8 files changed

+153
-126
lines changed

8 files changed

+153
-126
lines changed
Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,14 @@
1-
ROOTTEST_COMPILE_MACRO(TOffset.cxx)
1+
ROOTTEST_COMPILE_MACRO(TOffset.cxx
2+
FIXTURES_SETUP root-aclic-offset-TOffset-fixture)
3+
4+
if(MSVC)
5+
SET(_ref_name offsetwin.ref)
6+
else()
7+
SET(_ref_name offset.ref)
8+
endif()
9+
10+
ROOTTEST_ADD_TEST(offset
11+
MACRO runoffset.C
12+
ROOTEXE_OPTS -e "(void)gROOT->ProcessLine(\".L TOffset.cxx+\")"
13+
OUTREF ${_ref_name}
14+
FIXTURES_REQUIRED root-aclic-offset-TOffset-fixture)

roottest/root/aclic/offset/TOffset.cpp

Lines changed: 0 additions & 2 deletions
This file was deleted.

roottest/root/aclic/offset/TOffset.cxx

Lines changed: 66 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
// @(#)root/base:$Id$
22
// Author: Victor Perev 08/05/02
33

4+
#include <cstdio>
5+
#include <cstdlib>
6+
#include <cassert>
47

5-
#include <stdio.h>
6-
#include <stdlib.h>
7-
#include <assert.h>
88
#include "TOffset.h"
99
#include "TObject.h"
1010
#include "TList.h"
@@ -22,6 +22,7 @@
2222
#include <deque>
2323
#include <map>
2424
#include <set>
25+
2526
//using namespace std ;
2627
using std::vector;
2728
using std::list;
@@ -31,29 +32,19 @@ using std::multimap;
3132
using std::set;
3233
using std::multiset;
3334

34-
35-
// static members init
36-
#ifndef __CINT__
37-
Int_t TOffset::fgAlign[16] = {0};
38-
39-
40-
Int_t TOffset::fgSize[16] = {0};
41-
#else
42-
Int_t TOffset::fgAlign[16] ;
43-
44-
45-
Int_t TOffset::fgSize[16] ;
46-
#endif
47-
Int_t TOffset::fgWhereVirt = -1;
48-
Int_t TOffset::fgSolBug = 0;
4935

36+
// static members init
37+
Int_t TOffset::fgAlign[16] = {0};
38+
Int_t TOffset::fgSize[16] = {0};
39+
Int_t TOffset::fgWhereVirt = -1;
40+
Int_t TOffset::fgSolBug = 0;
5041

5142
//______________________________________________________________________________
5243
TOffset::TOffset(TClass *cl,Int_t all)
5344
{
5445
fOffsetList = new TList;
5546
fClass = cl;
56-
fOffset = fTail = fNBase = fSize = fUsed = fLastMult = 0;
47+
fOffset = fTail = fNBase = fSize = fUsed = fLastMult = 0;
5748
Init();
5849
Virt();
5950
Adopt(all);
@@ -63,7 +54,8 @@ Int_t TOffset::fgSolBug = 0;
6354
TOffset::~TOffset()
6455
{
6556
fOffsetList->Delete();
66-
delete fOffsetList; fOffsetList=0;
57+
delete fOffsetList;
58+
fOffsetList = nullptr;
6759
}
6860
//______________________________________________________________________________
6961
const char *TOffset::GetName() const
@@ -131,10 +123,10 @@ const char *TOffset::GetName() const
131123
{fgSize[kSizeVirt] = sizeof(TestVirt2);
132124
TestVirt3 t; fgAlign[kAlignVirt] = (char*)((TestVirt2*)&t)-&t.c1;}
133125
{TestVirt4 t; fgWhereVirt = ((char*)&t == &t.c);}
134-
126+
135127
// Test Solaris bug
136128
{ sol4Class t; fgSolBug = ((t.i4-(char*)&t) < (int) sizeof(sol3Class));}
137-
129+
138130

139131

140132
printf(" AlignChar %d size %d\n",fgAlign[kAlignChar] ,fgSize[kSizeChar] );
@@ -179,17 +171,17 @@ const char *TOffset::GetName() const
179171
}
180172
fVirt = 0;
181173
fMult = fgAlign[kAlignChar];
182-
}
174+
}
183175

184176
//______________________________________________________________________________
185177
void TOffset::Adopt(Int_t all)
186178
{
187179
//Adopt info from bases
188180

189181
TList *lb = fClass->GetListOfBases();
190-
if (!lb) return;
182+
if (!lb) return;
191183
TListIter nextBase(lb);
192-
TClass *bc=0;
184+
TClass *bc=0;
193185
TBaseClass *bcl=0;
194186
while ((bcl = (TBaseClass*)nextBase())) {//list of base
195187
bc = bcl->GetClassPointer();
@@ -211,10 +203,10 @@ const char *TOffset::GetName() const
211203
}//end of base offset list
212204
fOffset += basOff.GetUsed();
213205
}//end list of base
214-
206+
215207
return;
216-
217-
}
208+
209+
}
218210
//______________________________________________________________________________
219211
void TOffset::DoIt()
220212
{
@@ -232,7 +224,7 @@ const char *TOffset::GetName() const
232224
TDataType *dt = dm->GetDataType();
233225
FullTypeName = dm->GetFullTypeName();
234226
tit = fClass->GetName(); tit +=":: type=";
235-
tit += FullTypeName;
227+
tit += FullTypeName;
236228
TypeName = dm->GetTypeName();
237229
if (dt) {
238230
p|=dt->Property();
@@ -246,10 +238,10 @@ const char *TOffset::GetName() const
246238
for (int dim = 0; dim < dm->GetArrayDim(); dim++)
247239
{ units *= dm->GetMaxIndex(dim);}
248240
tit += " units="; tit+=units;
249-
241+
250242
kind = -1;
251243

252-
if (p&kIsPointer)
244+
if (p&kIsPointer)
253245
{ kind = kAlignPoint;}
254246

255247
else if (p&kIsEnum)
@@ -264,10 +256,10 @@ const char *TOffset::GetName() const
264256
const char *ctype = strstr(ctypes,ty.Data());
265257
assert (ctype);
266258
kind = (ctype-ctypes)/7;
267-
259+
268260
}
269261
else if (dm->IsSTLContainer())
270-
{
262+
{
271263
kind = kAlignVector + dm->IsSTLContainer() - 1;
272264
}
273265

@@ -283,7 +275,7 @@ const char *TOffset::GetName() const
283275
fOffset += size*units;
284276
continue;
285277
}
286-
278+
287279
cl = gROOT->GetClass(TypeName.Data());
288280
if (p&kIsClass || cl) {
289281

@@ -300,9 +292,6 @@ const char *TOffset::GetName() const
300292
fOffsetList->AddLast(tnoff);
301293
fOffset += (offClass.GetSize())*units;
302294

303-
304-
305-
306295
continue;
307296
}
308297

@@ -332,7 +321,7 @@ const char *TOffset::GetName() const
332321
printf ("TOffset: Class %s",fClass->GetName());
333322
printf (" size = %d virt = %d align = %d",fSize,fVirt,fMult);
334323
printf (" Tail = %d \n",fTail);
335-
int num = 0;
324+
int num = 0;
336325
TListIter next(fOffsetList);
337326
TNamed *tn;
338327
while ((tn=(TNamed*)next())) {
@@ -354,27 +343,23 @@ Int_t TOffset::GetOffset(const char *name) const
354343

355344
class myProf :public TH1F {
356345
public:
357-
virtual ~myProf(){}
358-
TArrayD fArr;
359-
ClassDef(myProf, 1)
346+
~myProf() override {}
347+
TArrayD fArr;
348+
ClassDefOverride(myProf, 1)
360349
};
361350
class myPro2 {
362-
363351
public:
364-
TH1F fH1;
365-
TArrayD fArr;
352+
TH1F fH1;
353+
TArrayD fArr;
366354
};
367355
class myPro3 :public TH1F {
368356
public:
369-
370-
virtual ~myPro3(){}
371-
char fArr;
372-
ClassDef(myPro3, 1)
357+
~myPro3() override{}
358+
char fArr;
359+
ClassDefOverride(myPro3, 1)
373360
};
374361

375362

376-
377-
378363
//Tail
379364
class fstClass {public:virtual ~fstClass(){};char c0;double d[73]; char c1;};
380365
class tailClass {public:fstClass f; char c2;};
@@ -392,10 +377,8 @@ class fst3Class : public fst1Class,fst2Class {public:virtual ~fst3Class(){};};
392377

393378
class tailPClass : public fst3Class {public: char c2;};
394379

395-
396-
397380
//______________________________________________________________________________
398-
void TOffset::Test()
381+
void TOffset::Test()
399382
{
400383

401384
myProf my;
@@ -410,28 +393,35 @@ void TOffset::Test()
410393
printf("size TH1D,TArrayD,my=%zu,%zu,%zu offset=%td\n",
411394
sizeof(TH1F),sizeof(TArrayD),sizeof(my3),(char*)&my3.fArr-(char*)&my3);
412395

413-
//Tail
414-
{ tailClass t; printf("Tail1: first size=%zu c012offset=%td %td %td,TailSize=%zu\n"
415-
,sizeof(fstClass),&t.f.c0-(char*)&t, &t.f.c1-(char*)&t,&t.c2-(char*)&t,sizeof(t));
416-
}
417-
//Tail2
418-
{ tail2Class t; printf("Tail2: first size=%zu c0121offset=%td %td %td,TailSize=%zu\n"
419-
,sizeof(fstClass),&t.c0-(char*)&t, &t.c1-(char*)&t, &t.c2-(char*)&t, sizeof(t));
420-
}
421-
//Tail3
422-
{ tail3Class t; printf("Tail3: first size=%zu c012offset=%td %td %td,TailSize=%zu\n"
423-
,sizeof(fstClass),&t.c0-(char*)&t, &t.c1-(char*)&t, (char*)&t.c2-(char*)&t, sizeof(t));
424-
}
425-
//Tail4
426-
{ tail2Class t; printf("Tail2: first size=%zu c0121offset=%td %td %td,TailSize=%zu\n"
427-
,sizeof(fstClass),&t.c0-(char*)&t, &t.c1-(char*)&t, &t.c2-(char*)&t, sizeof(t));
428-
}
429-
//TailP
430-
{ tailPClass t; printf("TailP: first size=%zu offset=%td TailSize=%zu\n"
431-
,sizeof(fst3Class),(char*)&t.c2-(char*)&t, sizeof(t));
432-
}
433-
396+
//Tail
397+
{
398+
tailClass t;
399+
printf("Tail1: first size=%zu c012offset=%td %td %td,TailSize=%zu\n"
400+
,sizeof(fstClass),&t.f.c0-(char*)&t, &t.f.c1-(char*)&t,&t.c2-(char*)&t,sizeof(t));
401+
}
402+
//Tail2
403+
{
404+
tail2Class t;
405+
printf("Tail2: first size=%zu c0121offset=%td %td %td,TailSize=%zu\n"
406+
,sizeof(fstClass),&t.c0-(char*)&t, &t.c1-(char*)&t, &t.c2-(char*)&t, sizeof(t));
407+
}
408+
//Tail3
409+
{
410+
tail3Class t;
411+
printf("Tail3: first size=%zu c012offset=%td %td %td,TailSize=%zu\n"
412+
,sizeof(fstClass),&t.c0-(char*)&t, &t.c1-(char*)&t, (char*)&t.c2-(char*)&t, sizeof(t));
413+
}
414+
//Tail4
415+
{
416+
tail2Class t;
417+
printf("Tail2: first size=%zu c0121offset=%td %td %td,TailSize=%zu\n"
418+
,sizeof(fstClass),&t.c0-(char*)&t, &t.c1-(char*)&t, &t.c2-(char*)&t, sizeof(t));
419+
}
420+
//TailP
421+
{
422+
tailPClass t;
423+
printf("TailP: first size=%zu offset=%td TailSize=%zu\n"
424+
,sizeof(fst3Class),(char*)&t.c2-(char*)&t, sizeof(t));
425+
}
434426

435427
}
436-
437-

0 commit comments

Comments
 (0)