You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							52 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							52 lines
						
					
					
						
							2.0 KiB
						
					
					
				| /* | |
|  * MappedFileTest.cpp | |
|  * | |
|  *  Created on: Feb 25, 2014 | |
|  *      Author: Manuel Sascha Weiand | |
|  */ | |
| 
 | |
| #include "gtest/gtest.h" | |
| #include "storm-config.h" | |
|  | |
| #include <string> | |
| #include "src/parser/MappedFile.h" | |
| #include "src/utility/cstring.h" | |
| #include "src/exceptions/FileIoException.h" | |
|  | |
| TEST(MappedFileTest, NonExistingFile) { | |
| 	// No matter what happens, please do NOT create a file with the name "nonExistingFile.not"! | |
| 	ASSERT_THROW(storm::parser::MappedFile(STORM_CPP_TESTS_BASE_PATH "/nonExistingFile.not"), storm::exceptions::FileIoException); | |
| } | |
| 
 | |
| TEST(MappedFileTest, BasicFunctionality) { | |
| 
 | |
| 	// Open a file and test if the content is loaded as expected. | |
| 	storm::parser::MappedFile file(STORM_CPP_TESTS_BASE_PATH "/functional/parser/testStringFile.txt"); | |
| 	std::string testString = "This is a test string."; | |
| 	char * dataPtr = file.getData(); | |
| 	for(char const * testStringPtr = testString.c_str(); testStringPtr - testString.c_str() < 22; testStringPtr++) { | |
| 		ASSERT_EQ(*testStringPtr, *dataPtr); | |
| 		dataPtr++; | |
| 	} | |
| 	// The next character should be an end of line character (actual character varies between operating systems). | |
| 	ASSERT_EQ(dataPtr, storm::utility::cstring::forwardToLineEnd(dataPtr)); | |
| 
 | |
| 	// The newline character should be the last contained in the string. | |
| 	ASSERT_EQ(file.getDataEnd(), storm::utility::cstring::forwardToNextLine(dataPtr)); | |
| 
 | |
| } | |
| 
 | |
| TEST(MappedFileTest, ExistsAndReadble) { | |
| 
 | |
| 	// Test the fileExistsAndIsReadable() method under various circumstances. | |
|  | |
| 	// File exists and is readable. | |
| 	ASSERT_TRUE(storm::parser::MappedFile::fileExistsAndIsReadable(STORM_CPP_TESTS_BASE_PATH "/functional/parser/testStringFile.txt")); | |
| 
 | |
| 	// File does not exist. | |
| 	ASSERT_FALSE(storm::parser::MappedFile::fileExistsAndIsReadable(STORM_CPP_TESTS_BASE_PATH "/nonExistingFile.not")); | |
| 
 | |
| 	// File exists but is not readable. | |
| 	// TODO: Find portable solution to providing a situation in which a file exists but is not readable. | |
| 	//ASSERT_FALSE(storm::parser::MappedFile::fileExistsAndIsReadable(STORM_CPP_TESTS_BASE_PATH "/functional/parser/unreadableFile.txt")); | |
| }
 |