in trace/src/main/org/jetbrains/lincheck/trace/Deserialization.kt [799:819]
fun isPackedTrace(traceFileName: String): Boolean {
val input = openExistingFile(traceFileName) ?: return false
return try {
ZipInputStream(input).use { zip ->
val metaInfoEntry = zip.nextEntry ?: return false
if (metaInfoEntry.name != PACKED_META_ITEM_NAME) return false
val dataEntry = zip.nextEntry ?: return false
if (dataEntry.name != PACKED_DATA_ITEM_NAME) return false
if (readMagic(zip) != TRACE_MAGIC) return false
val indexEntry = zip.nextEntry ?: return false
if (indexEntry.name != PACKED_INDEX_ITEM_NAME) return false
if (readMagic(zip) != INDEX_MAGIC) return false
return true
}
} catch (_: Throwable) {
false
}
}