Skip to content

Commit 9d0bec3

Browse files
authored
Merge pull request #699 from sappelhoff/fix_empty_file_error_CTF
[MRG] make 0KB admissible exceptions for certain CTF files
2 parents 1bd7e35 + 6541ccc commit 9d0bec3

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

tests/data/empty_files/sub-0001/meg/sub-0001_task-AEF_run-01_meg.ds/sub-0001_task-AEF_run-01_meg.meg4

Whitespace-only changes.

tests/utils/files.spec.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ describe('validateMisc', () => {
4848
let filelist, dir
4949

5050
beforeAll(() => {
51+
// contains stripped down CTF format dataset: Both, BadChannels and
52+
// bad.segments files can be empty and still valid. Everything else must
53+
// not be empty.
5154
dir = `${process.cwd()}/tests/data/empty_files`
5255
})
5356

@@ -56,14 +59,16 @@ describe('validateMisc', () => {
5659
filelist = files
5760
})
5861
})
59-
it('returns issues for empty files (0kb)', done => {
62+
it('returns issues for empty files (0kb), accepting a limited set of exceptions', done => {
6063
const files = groupFileTypes(filelist, {})
6164
utils.collectSummary(filelist, {})
6265

6366
validateMisc(files.misc).then(issues => {
64-
assert.ok(issues.length > 0)
67+
// *.meg4 and BadChannels files are empty. But only *.meg4 is an issue
68+
assert.ok(issues.length == 1)
6569
assert.ok(issues.every(issue => issue instanceof utils.issues.Issue))
6670
assert.notStrictEqual(issues.findIndex(issue => issue.code === 99), -1)
71+
assert.ok(issues[0].file.name == 'sub-0001_task-AEF_run-01_meg.meg4')
6772
done()
6873
})
6974
})

utils/files/validateMisc.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@ const Issue = require('../issues/issue')
22

33
function createIssueForEmpty(file) {
44
const size = typeof window !== 'undefined' ? file.size : file.stats.size
5-
return size <= 0 && new Issue({ code: 99, file: file })
5+
var failsSizeRequirement = size <= 0
6+
// Exception misc files that can be valid although size==0
7+
// E.g., BadChannels and bad.segments in CTF data format (MEG modality)
8+
const exceptionMiscs = ['BadChannels', 'bad.segments']
9+
if (exceptionMiscs.indexOf(file.name) > -1) {
10+
failsSizeRequirement = false
11+
}
12+
13+
return failsSizeRequirement && new Issue({ code: 99, file: file })
614
}
715
function clearNonIssues(x) {
816
return x instanceof Issue

0 commit comments

Comments
 (0)