#include "XMLFileCatalog.h"
#include <cstdio>
#include <ctime>
#include <iostream>
#include <sstream>
Go to the source code of this file.
◆ testXMLFileCatalogRead()
int testXMLFileCatalogRead |
( |
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
Definition at line 72 of file XMLCatalogTest.cpp.
73 std::vector<std::string> fids;
74 std::string fname =
"file:test.xml";
80 std::cout <<
"File loaded in " <<
time(
nullptr ) -
start <<
" seconds. " << std::endl;
83 std::cout <<
"FIDs scanned in " <<
time(
nullptr ) -
start <<
" seconds. " << std::endl;
85 size_t mult = prt ? 1 : 10;
86 std::cout << mult * fids.size() << std::endl;
87 for (
size_t i = 0, tot = ( mult * fids.size() ); i < tot; ++i ) {
88 size_t ent = i % fids.size();
89 if ( ent == 0 ) std::cout << i << std::endl;
90 std::string fid = fids[ent];
91 XMLFileCatalog::Files pfn, lfn;
92 XMLFileCatalog::Attributes attrs;
94 for (
auto& elem : lfn ) {
95 if ( !
c.existsLFN( elem.first ) ) {
96 std::cout <<
"Error LFN existence of :" << elem.second << std::endl;
99 std::string f =
c.lookupLFN( elem.first );
101 std::cout <<
"Error LFN lookup of :" << elem.second << std::endl;
105 c.getPFN( fid, pfn );
106 for (
auto& elem : pfn ) {
107 if ( !
c.existsPFN( elem.first ) ) {
108 std::cout <<
"Error PFN existence of :" << elem.second << std::endl;
111 std::string f =
c.lookupPFN( elem.first );
113 std::cout <<
"Error PFN lookup of :" << elem.second << std::endl;
117 c.getMetaData( fid, attrs );
118 size_t n = lfn.size() > pfn.size() ? lfn.size() : pfn.size();
119 n =
n > attrs.size() ?
n : attrs.size();
121 std::cout <<
"FID:" << fid << std::endl;
122 for (
size_t j = 0;
j <
n; ++
j ) {
123 if (
j < lfn.size() )
124 std::cout << lfn[
j].first <<
" ";
127 if (
j < pfn.size() )
128 std::cout << pfn[
j].first <<
" ";
131 if (
j < attrs.size() )
132 std::cout << attrs[
j].first <<
" " << attrs[
j].second <<
" ";
135 std::cout << std::endl;
140 std::cout <<
"Used " <<
end <<
" seconds (" << (long)fids.size() * mult <<
" entries)."
141 <<
" Corresponding to " << float(
end ) / float( fids.size() * mult ) <<
" entries/second." << std::endl;
◆ testXMLFileCatalogWrite()
int testXMLFileCatalogWrite |
( |
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
Definition at line 19 of file XMLCatalogTest.cpp.
21 std::string fname =
"file:test.xml";
23 if (
argc > 2 ) nwrite = ::atol(
argv[2] );
26 std::vector<std::string> fids;
29 for (
size_t n = fids.size(), i =
n; i <
n + nwrite; ++i ) {
30 std::ostringstream txt;
31 if ( 0 == ( ( i -
n ) % 10000 ) ) std::cout << i -
n << std::endl;
32 std::string fid =
c.createFID();
34 txt <<
"PFN1_Test_" << i <<
".dat";
35 c.registerPFN( fid, txt.str(),
"ROOT" );
36 c.registerPFN( fid, txt.str(),
"ROOT" );
38 txt <<
"PFN2_Test_" << i <<
".dat";
39 c.registerPFN( fid, txt.str(),
"ROOT" );
41 txt <<
"PFN3_Test_" << i <<
".dat";
42 c.registerPFN( fid, txt.str(),
"ROOT" );
44 txt <<
"lfn1_Test_" << i <<
".dat";
45 c.registerLFN( fid, txt.str() );
47 txt <<
"lfn2_Test_" << i <<
".dat";
48 c.registerLFN( fid, txt.str() );
50 txt <<
"lfn3_Test_" << i <<
".dat";
51 c.registerLFN( fid, txt.str() );
52 c.setMetaData( fid,
"Name1",
"Value1" );
53 c.setMetaData( fid,
"Name1",
"Value111" );
54 c.setMetaData( fid,
"Name2",
"Value2" );
55 c.setMetaData( fid,
"Name3",
"Value3" );
58 std::cout <<
"Used " <<
end <<
" seconds."
59 <<
" corresponding to " << float(
end ) / float( nwrite ) <<
" entries/second." << std::endl;
63 std::cout <<
"Used " << saved <<
" seconds."
64 <<
" corresponding to " << float( saved ) / float( nwrite ) <<
" entries/second." << std::endl;
66 std::cout <<
"Error: Catalog is not dirty after inserting records." << std::endl;