initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / applications / test / fileName / fileNameTest.C
blobc4791f6f385b208c6484ae05e89e72a455873ec7
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Application
26     fileName
28 Description
31 \*---------------------------------------------------------------------------*/
33 #include "fileName.H"
34 #include "SubList.H"
35 #include "IOobject.H"
36 #include "IOstreams.H"
37 #include "OSspecific.H"
39 using namespace Foam;
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 // Main program:
44 int main()
46     wordList wrdList(5);
47     wrdList[0] = "hello";
48     wrdList[1] = "hello1";
49     wrdList[2] = "hello2";
50     wrdList[3] = "hello3";
51     wrdList[4] = "hello4.hmm";
53     fileName pathName(wrdList);
55     Info<< "pathName = " << pathName << nl
56         << "pathName.name() = " << pathName.name() << nl
57         << "pathName.path() = " << pathName.path() << nl
58         << "pathName.ext()  = " << pathName.ext() << endl;
60     Info<< "pathName.components() = " << pathName.components() << nl
61         << "pathName.component(2) = " << pathName.component(2) << nl
62         << endl;
64     // try with different combination
65     // The final one should emit warnings
66     for (label start = 0; start <= wrdList.size(); ++start)
67     {
68         fileName instance, local;
69         word name;
71         fileName path(SubList<word>(wrdList, wrdList.size()-start, start));
72         fileName path2 = "." / path;
74         IOobject::fileNameComponents
75         (
76             path,
77             instance,
78             local,
79             name
80         );
82         Info<< "IOobject::fileNameComponents for " << path << nl
83             << "  instance = " << instance << nl
84             << "  local    = " << local << nl
85             << "  name     = " << name << endl;
87         IOobject::fileNameComponents
88         (
89             path2,
90             instance,
91             local,
92             name
93         );
95         Info<< "IOobject::fileNameComponents for " << path2 << nl
96             << "  instance = " << instance << nl
97             << "  local    = " << local << nl
98             << "  name     = " << name << endl;
100     }
102     // test findEtcFile
103     Info<< "\n\nfindEtcFile tests:" << nl
104         << " controlDict => " << findEtcFile("controlDict") << nl
105         << " badName => " << findEtcFile("badName") << endl;
107     Info<< "This should emit a fatal error:" << endl;
108     Info<< " badName(die) => " << findEtcFile("badName", true) << nl
109         << endl;
111     Info<< "\nEnd" << endl;
113     return 0;
117 // ************************************************************************* //