1 /*
2  *  Copyright (C) 2010  Regents of the University of Michigan
3  *
4  *   This program is free software: you can redistribute it and/or modify
5  *   it under the terms of the GNU General Public License as published by
6  *   the Free Software Foundation, either version 3 of the License, or
7  *   (at your option) any later version.
8  *
9  *   This program is distributed in the hope that it will be useful,
10  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *   GNU General Public License for more details.
13  *
14  *   You should have received a copy of the GNU General Public License
15  *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17 #include <string>
18 #include "InputFile.h"
19 
20 
21 class IFILE_Test : public InputFile
22 {
23 public:
24     void test();
25 
26     static const int TEST_FILE_SIZE;
27     static const int BGZF_TEST_FILE_SIZE;
28     static const std::string TEST_FILE_CONTENTS;
29 
30 private:
31     void testAll(const char* extension);
32     void test_readFromFile(const char* extension);
33     void test_readTilChar(const char* extension);
34 
35     // Tested together because they are used to test each other.
36     void test_ifeof_ifrewind(const char* extension);
37 
38     // Tested together to verify they can be successfully be called after the
39     // other has been called.
40     void test_ifread_ifgetc(const char* extension);
41 
42     void test_ifclose(const char* extension);
43 
44     void test_ifseek(const char* extension);
45 
46     void test_noExistRead(const char *extension);
47 
48     void openFile(const char* extension);
49     void openLargeFile(const char* extension);
50     void openNoExistFile(const char* extension);
51 
52     // Buffer used for reading into.
53     static const int MAX_TEST_BUFFER_SIZE = 100;
54     char myTestBuffer[MAX_TEST_BUFFER_SIZE];
55 
56 };
57