Skip to content
Snippets Groups Projects
Commit 19b3e29f authored by nkindlon's avatar nkindlon
Browse files

Added unit test and changed error message for empty files.

parent 008fee8e
No related branches found
No related tags found
No related merge requests found
...@@ -70,6 +70,7 @@ bool BufferedStreamMgr::init() ...@@ -70,6 +70,7 @@ bool BufferedStreamMgr::init()
bool BufferedStreamMgr::getTypeData() bool BufferedStreamMgr::getTypeData()
{ {
_currScanBuffer = _inputStreamMgr->getSavedData(); _currScanBuffer = _inputStreamMgr->getSavedData();
_typeChecker.setFilename(_filename);
do { do {
if (!_typeChecker.scanBuffer(_currScanBuffer.c_str(), _currScanBuffer.size()) && !_typeChecker.needsMoreData()) { if (!_typeChecker.scanBuffer(_currScanBuffer.c_str(), _currScanBuffer.size()) && !_typeChecker.needsMoreData()) {
return false; return false;
......
...@@ -77,7 +77,7 @@ bool FileRecordTypeChecker::scanBuffer(const char *buffer, size_t len) ...@@ -77,7 +77,7 @@ bool FileRecordTypeChecker::scanBuffer(const char *buffer, size_t len)
} }
_numBytesInBuffer = len; _numBytesInBuffer = len;
if (_numBytesInBuffer == 0) { if (_numBytesInBuffer == 0) {
cerr << "Error: Type checker received empty buffer." << endl; cerr << "Error: " << _filename << " is an empty file."<< endl;
exit(1); exit(1);
} }
......
...@@ -32,6 +32,7 @@ public: ...@@ -32,6 +32,7 @@ public:
typedef enum { UNKNOWN_RECORD_TYPE, BED3_RECORD_TYPE, BED4_RECORD_TYPE, BEDGRAPH_RECORD_TYPE, BED5_RECORD_TYPE, typedef enum { UNKNOWN_RECORD_TYPE, BED3_RECORD_TYPE, BED4_RECORD_TYPE, BEDGRAPH_RECORD_TYPE, BED5_RECORD_TYPE,
BED6_RECORD_TYPE, BED12_RECORD_TYPE, BED_PLUS_RECORD_TYPE, BAM_RECORD_TYPE, VCF_RECORD_TYPE, GFF_RECORD_TYPE} RECORD_TYPE; BED6_RECORD_TYPE, BED12_RECORD_TYPE, BED_PLUS_RECORD_TYPE, BAM_RECORD_TYPE, VCF_RECORD_TYPE, GFF_RECORD_TYPE} RECORD_TYPE;
void setFilename(const QuickString & filename) { _filename = filename; }
bool scanBuffer(const char *buf, size_t len=0); bool scanBuffer(const char *buf, size_t len=0);
bool needsMoreData() const { return _insufficientData; } bool needsMoreData() const { return _insufficientData; }
...@@ -80,6 +81,7 @@ private: ...@@ -80,6 +81,7 @@ private:
FILE_TYPE _fileType; FILE_TYPE _fileType;
RECORD_TYPE _recordType; RECORD_TYPE _recordType;
QuickString _filename; //useful for reporting errors with file.
vector<QuickString> _lines; vector<QuickString> _lines;
vector<QuickString> _currLineElems; vector<QuickString> _currLineElems;
int _firstValidDataLineIdx; int _firstValidDataLineIdx;
......
...@@ -584,6 +584,18 @@ $BT intersect -a nonExistantFile.bed -b b.bed -sorted 2>&1 > /dev/null | cat - > ...@@ -584,6 +584,18 @@ $BT intersect -a nonExistantFile.bed -b b.bed -sorted 2>&1 > /dev/null | cat - >
check obs exp check obs exp
rm obs exp rm obs exp
###########################################################
# Test that we throw an error for empty files
############################################################
echo " intersect.new.t51...\c"
echo "is an empty file." > exp
touch dummy.txt
$BT intersect -a dummy.txt -b b.bed 2>&1 > /dev/null | cut -f3-6 --delimiter=' ' > obs
check obs exp
rm obs exp dummy.txt
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment