Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
guitest_playback.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_gui
3/// This macro plays a recorded ROOT session showing how to perform various interactive GUI operations with the
4/// guitest.C macro While replaying the session, several temporary macros (guitest0xx.C) macros will be saved. These
5/// files will be later on compared with some reference values to verify the validity of different parts of the test.
6///
7/// \macro_code
8///
9/// \author Bertrand Bellenot
10
11#include "TSystem.h"
12#include "TSystemFile.h"
13#include "TRecorder.h"
14
15// count characters in the file, skipping cr/lf
16Int_t file_size(const char *filename)
17{
18 FILE *lunin;
19 Int_t c, wc = 0;
20
21 lunin = fopen(filename, "rb");
22 if (lunin == 0)
23 return -1;
24 while (!feof(lunin)) {
25 c = fgetc(lunin);
26 if (c != 0x0d && c != 0x0a)
27 wc++;
28 }
30 return wc;
31}
32
33// main function
35{
36 Int_t i;
38
39 gBenchmark->Start("guitest_playback");
40
41 // first delete old files, if any
42 for (i = 0; i < 11; ++i) {
43 gSystem->Unlink(TString::Format("guitest%03d.C", i + 1));
44 }
45
46 TRecorder r("http://root.cern/files/guitest_playback.root");
47
48 // wait for the recorder to finish the replay
49 while (r.GetState() == TRecorder::kReplaying) {
51 gSystem->Sleep(1);
52 }
53
54 for (i = 0; i < 11; ++i) {
55 guitest_ref[i] = 0;
56 guitest_err[i] = 100;
57 guitest_size[i] = file_size(TString::Format("guitest%03d.C", i + 1));
58 }
59
60 guitest_ref[0] = 23319;
61 guitest_ref[1] = 5633;
62 guitest_ref[2] = 14939;
63 guitest_ref[3] = 9459;
64 guitest_ref[4] = 5351;
65 guitest_ref[5] = 22982;
66 guitest_ref[6] = 23812;
67 guitest_ref[7] = 23869;
68 guitest_ref[8] = 23918;
69 guitest_ref[9] = 24067;
70 guitest_ref[10] = 65517;
71
72 printf("**********************************************************************\n");
73 printf("* Results of guitest_playback.C *\n");
74 printf("**********************************************************************\n");
75
76 for (i = 0; i < 11; ++i) {
77 printf("guitest %02d: output............................................", i + 1);
79 printf("..... OK\n");
80 // delete successful tests, keep only the failing ones (for verification)
81 gSystem->Unlink(TString::Format("guitest%03d.C", i + 1));
82 } else {
83 printf(". FAILED\n");
84 }
85 }
86 printf("**********************************************************************\n");
87 gBenchmark->Show("guitest_playback");
88}
#define c(i)
Definition RSha256.hxx:101
int Int_t
Signed integer 4 bytes (int)
Definition RtypesCore.h:60
R__EXTERN TBenchmark * gBenchmark
Definition TBenchmark.h:59
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
R__EXTERN TSystem * gSystem
Definition TSystem.h:582
virtual void Start(const char *name)
Starts Benchmark with the specified name.
virtual void Show(const char *name)
Stops Benchmark name and Prints results.
Class provides direct recorder/replayer interface for a user.
Definition TRecorder.h:266
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Definition TString.cxx:2460
virtual void Sleep(UInt_t milliSec)
Sleep milliSec milli seconds.
Definition TSystem.cxx:439
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
Definition TSystem.cxx:418
virtual int Unlink(const char *name)
Unlink, i.e.
Definition TSystem.cxx:1396
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
Definition TMathBase.h:122