fun isPackedTrace()

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
    }
}