-
Notifications
You must be signed in to change notification settings - Fork 12
Result Package
lanrongqi edited this page Feb 7, 2021
·
2 revisions
WeJudge支持评测回放功能,需要保存运行数据。通常评测一次,硬盘上便多了一堆零碎文件。故需要把他们整合到一起,便于存储和管理。另外,回放目的是为了看哪些数据没过,为了不浪费存储空间,默认情况下以AC的测试数据是不保存的。
------------------------
|MAG|VER|CMP|RSZ|BSZ|CSZ| Certificate |SSZ| Signature | Result | Body
------------------------
| 2 | 1 | 1 | 4 | 4 | 2 | ... | 2 | ...
------------------------
MAG 魔术数 (0xB540)
VER 数据包版本
CMP Body压缩方式(0-禁用压缩;1-gzip;默认是1)
RSZ 结果信息长度
BSZ Body信息长度
CSZ 公钥证书长度
SSZ 签名长度
Certificate 证书内容
Signature 签名内容,算法:SHA256(Result+Body)
Result 结果信息内容
Body Body内容,主要是每个测试数据的运行后的out文件那些
type JudgeResultPackage struct {
Version uint8 // (VER) Package Version
CompressorType uint8 // (CMP) Compressor type: 0-disabled; 1-gzip
ResultSize uint32 // (RSZ) Result JSON Text Size
BodySize uint32 // (BSZ) Result Body Size
CertSize uint16 // (CSZ) Public Certificate Size
SignSize uint16 // (SSZ) Signature Size
Certificate []byte // Public Certificate
Signature []byte // Signature: SHA256(Result + Body)
Result []byte // Result JSON
BodyPackageFile string // Body package file (内部成员,不输出)
}© 2018 - 2021 LanceLRQ,All rights reserved.