Skip to content

jokerwyt/sysy-testsuit-collection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

sysy-testsuit-collection (lvX)

SysY是C语言的一个子集。和课程实践的lv1~lv9一样,本仓库含有一个SysY测试集(lvX)。 LvX含有467个从各个来源收集的额外测试。对于每个测试用例,包含:

  1. 一个.c文件
  2. 一个.out文件,其中最后一行是程序应有的返回值。.out文件是由实践环境容器中的clang作为基准编译器生成的,并且由笔者自己写的sysy编译器交叉验证。
  3. 一个可能的.in文件,作为对应可执行文件的测试输入。

注意事项 & 免责声明

  1. 你的编译器需要支持Lv1到Lv9的所有功能,才可以通过所有测试点。你可以选择只测试Koopa前端。
  2. 笔者自己写的sysy编译器可以通过其中所有测试用例,耗时不超过十分钟。但是: 这并不意味着所有测试用例的sysy程序都是合法的。即:测试用例中可能含有UB、数组越界等行为。在一头扎进去调试前,请仔细甄别程序是否正确。

使用方法

  1. 启动在实验环境提供的容器。
  2. 克隆本仓库并将lvX文件夹复制到容器中的/opt/bin/testcases/
  3. autotest -koopa -s lvX ~/compilerautotest -riscv -s lvX ~/compiler

来源

收集自北大编译实践在线文档中所提及的外部仓库 并在此基础上进行了改动:

  1. 删除一些课程Lab不要求的内容,如-2147483648整型字面量。
  2. 删除了部分不合法的sysy程序。
  3. 删除了部分耗时过长的性能测试用例

生成.out文件使用的clang版本

clang -v

Ubuntu clang version 13.0.1-++20220120110924+75e33f71c2da-1~exp1~20220120231001.58
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/9
Candidate multilib: .;@m64
Selected multilib: .;@m64

image

About

Collections of SysY language testcases.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages