Skip to content

Commit 3aa18d6

Browse files
committed
Replace assertions with error messages
1 parent 63fb577 commit 3aa18d6

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

src/ASDF.jl

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,9 @@ function read_block_header(io::IO, position::Int64)
116116
seek(io, position)
117117
nb = readbytes!(io, header)
118118
# TODO: Better error message
119-
@assert nb == length(header)
119+
if nb != length(header)
120+
error("Number of bytes read from stream does not match length of header")
121+
end
120122

121123
# Decode block header
122124
token = @view header[1:4]
@@ -128,15 +130,20 @@ function read_block_header(io::IO, position::Int64)
128130
data_size = big2native_U64(@view header[31:38])
129131
checksum = @view header[39:54]
130132

131-
# TODO: Better error message
132-
@assert token == block_magic_token
133+
if token != block_magic_token
134+
error("Block does not start with magic number")
135+
end
133136

134137
STREAMED = Bool(flags & 0x1)
135138
# We don't handle streamed blocks yet
136-
@assert !STREAMED
139+
if STREAMED
140+
error("ASDF.jl does not support streamed blocks")
141+
end
137142

138143
# TODO: Better error message
139-
@assert allocated_size >= used_size
144+
if allocated_size < used_size
145+
error("ASDF file header incorrectly specifies amount of space to use")
146+
end
140147

141148
return BlockHeader(io, position, token, header_size, flags, compression, allocated_size, used_size, data_size, checksum)
142149
end
@@ -165,7 +172,9 @@ function read_block(header::BlockHeader)
165172
if any(header.checksum != 0)
166173
actual_checksum = md5(data)
167174
# TODO: Better error message
168-
@assert all(actual_checksum == header.checksum)
175+
if any(actual_checksum != header.checksum)
176+
error("Checksum mismatch in ASDF file header")
177+
end
169178
end
170179

171180
# Decompress data
@@ -187,15 +196,16 @@ function read_block(header::BlockHeader)
187196
elseif compression == C_Zstd
188197
codec = ZstdCodec()
189198
else
190-
# TODO: Better error message
191-
@assert false
199+
error("Invalid compression format found: $compression")
192200
end
193201
data = decode(codec, data)
194202
end
195203
data::AbstractVector{UInt8}
196204

197205
# TODO: Better error message
198-
@assert length(data) == header.data_size
206+
if length(data) != header.data_size
207+
error("Actual data size different from declared data size in header.")
208+
end
199209

200210
return data
201211
end
@@ -389,7 +399,9 @@ end
389399
function Base.getindex(ndarray::NDArray)
390400
if ndarray.data !== nothing
391401
data = ndarray.data
392-
@assert ndarray.byteorder == host_byteorder
402+
if ndarray.byteorder != host_byteorder
403+
error("ndarray byteorder does not match system byteorder")
404+
end
393405
elseif ndarray.source !== nothing
394406
data = read_block(ndarray.lazy_block_headers.block_headers[ndarray.source + 1])
395407
# Handle strides and offset.

0 commit comments

Comments
 (0)