aboutsummaryrefslogtreecommitdiff
path: root/test/tests.zig
AgeCommit message (Collapse)Author
2024-04-07Promote linker test cases to packagesCarl Åstholm
2024-04-07Turn "simple" standalone test cases into a packageCarl Åstholm
2024-04-07Don't add standalone test cases until we've built stage3Carl Åstholm
2024-04-07Promote standalone test cases to packagesCarl Åstholm
This is a prerequisite for removing `b.anonymousDependency()`, but having compiler tests dogfood package management might be a good idea in general.
2024-03-30cbe: rewrite `CType`Jacob Young
Closes #14904
2024-03-08test manifest key checking and other fixesfebruary cozzocrea
This commit adds several fixes and improvements for the Zig compiler test harness. 1. -Dskip-translate-c option added for skipping the translate-c tests. 2. translate-c/run-translated-c tests in test/cases/* have been added to the steps test-translate-c and test-run-translated-c. Closes #18224. 3. Custom name added to the CheckFile step for the translate-c step to better communicate which test failed. 4. Test manifest key validation added to return an error if a manifest contains an invalid key.
2024-02-26change default WASI stack sizeAndrew Kelley
to match the other operating systems. 16 MiB closes #18885
2024-02-25test: rework how filtering worksJacob Young
* make test names contain the fully qualified name * make test filters match the fully qualified name * allow multiple test filters, where a test is skipped if it does not match any of the specified filters
2024-02-24Revert "tests: add -Dskip-cross-glibc option"Jacob Young
This reverts commit bc0f246911a35324473f72b770cc5715902cc912. This was added as a workaround for a bug that has since been fixed.
2024-02-20c_import: extract behavior tests that use `@cImport`Jacob Young
This introduces the new test step `test-c-import`, and removes the ability of the behavior tests to `@cImport` paths relative to `test`. This allows the behavior tests to be run without translate c.
2024-02-02std.Build: implement --host-target, --host-cpu, --host-dynamic-linkerAndrew Kelley
This also makes a long-overdue change of extracting common state from Build into a shared Graph object. Getting the semantics right for these flags turned out to be quite tricky. In the end it works like this: * The override only happens when the target is fully native, with no additional query parameters, such as versions or CPU features added. * The override affects the resolved Target but leaves the original Query unmodified. * The "is native?" detection logic operates on the original, unmodified query. This makes it possible to provide invalid host target information, causing confusing errors to occur. Don't do that. There are some minor breaking changes to std.Build API such as the fact that `b.zig_exe` is now moved to `b.graph.zig_exe`, as well as a handful of other similar flags.
2024-01-24test/link/link: pass build options to elf and macho testsJakub Konka
2024-01-01std.Build.ResolvedTarget: rename target field to resultAndrew Kelley
This change is seemingly insignificant but I actually agonized over this for three days. Some other things I considered: * (status quo in master branch) make Compile step creation functions accept a Target.Query and delete the ResolvedTarget struct. - downside: redundantly resolve target queries many times * same as before but additionally add a hash map to cache target query resolutions. - downside: now there is a hash map that doesn't actually need to exist, just to make the API more ergonomic. * add is_native_os and is_native_abi fields to std.Target and use it directly as the result of resolving a target query. - downside: they really don't belong there. They would be available as comptime booleans via `@import("builtin")` but they should not be exposed that way. With this change the downsides are: * the option name of addExecutable and friends is `target` instead of `resolved_target` matching the type name. - upside: this does not break compatibility with existing build scripts * you likely end up seeing `target.result.cpu.arch` rather than `target.cpu.arch`. - upside: this is an improvement over `target.target.cpu.arch` which it was before this commit. - downside: `b.host.target` is now `b.host.result`.
2024-01-01std.Target.Query: remove deprecated APIAndrew Kelley
These functions have been doomed for a long time. Finally I figured out what the proper relationship between this API and std.Target is.
2024-01-01rename std.zig.CrossTarget to std.Target.QueryAndrew Kelley
2024-01-01zig build system: change target, compilation, and module APIsAndrew Kelley
Introduce the concept of "target query" and "resolved target". A target query is what the user specifies, with some things left to default. A resolved target has the default things discovered and populated. In the future, std.zig.CrossTarget will be rename to std.Target.Query. Introduces `std.Build.resolveTargetQuery` to get from one to the other. The concept of `main_mod_path` is gone, no longer supported. You have to put the root source file at the module root now. * remove deprecated API * update build.zig for the breaking API changes in this branch * move std.Build.Step.Compile.BuildId to std.zig.BuildId * add more options to std.Build.ExecutableOptions, std.Build.ObjectOptions, std.Build.SharedLibraryOptions, std.Build.StaticLibraryOptions, and std.Build.TestOptions. * remove `std.Build.constructCMacro`. There is no use for this API. * deprecate `std.Build.Step.Compile.defineCMacro`. Instead, `std.Build.Module.addCMacro` is provided. - remove `std.Build.Step.Compile.defineCMacroRaw`. * deprecate `std.Build.Step.Compile.linkFrameworkNeeded` - use `std.Build.Module.linkFramework` * deprecate `std.Build.Step.Compile.linkFrameworkWeak` - use `std.Build.Module.linkFramework` * move more logic into `std.Build.Module` * allow `target` and `optimize` to be `null` when creating a Module. Along with other fields, those unspecified options will be inherited from parent `Module` when inserted into an import table. * the `target` field of `addExecutable` is now required. pass `b.host` to get the host target.
2023-12-01test: test with `-fstrip` and fix failuresJacob Young
Closes #17513
2023-11-22update for the std.fs.Dir changesAndrew Kelley
2023-11-20zig init: also create a build.zig.zonAndrew Kelley
2023-11-20merge `zig init-exe` and `zig init-lib` into `zig init`Andrew Kelley
Instead of `zig init-lib` and `zig init-exe`, now there is only `zig init`, which initializes any of the template files that do not already exist, and makes a package that contains both an executable and a static library. The idea is that the user can delete whatever they don't want. In fact, I think even more things should be added to the build.zig template.
2023-11-06tests: skip native CPU std tests on WindowsAndrew Kelley
See tracking issue #17902
2023-10-29x86_64: fix compiler rt test failuresJacob Young
2023-10-29tests: change some x86_64 backend targets to pic for more coverageJacob Young
2023-10-26test: enable `c-abi-tests` for the x86_64 backendJacob Young
Add testing for `x86_64_v2` and `x86_64_v3` with the x86_64 backend.
2023-10-25x86_64: pass more testsJacob Young
* 128-bit integer multiplication with overflow * more instruction encodings used by std inline asm * implement the `try_ptr` air instruction * follow correct stack frame abi * enable full panic handler * enable stack traces
2023-10-22Revert "Revert "Merge pull request #17637 from jacobly0/x86_64-test-std""Jacob Young
This reverts commit 6f0198cadbe29294f2bf3153a27beebd64377566.
2023-10-22Revert "Merge pull request #17637 from jacobly0/x86_64-test-std"Andrew Kelley
This reverts commit 0c99ba1eab63865592bb084feb271cd4e4b0357e, reversing changes made to 5f92b070bf284f1493b1b5d433dd3adde2f46727. This caused a CI failure when it landed in master branch due to a 128-bit `@byteSwap` in std.mem.
2023-10-21x86_64: disable failing tests, enable test-compiler-rt testingJacob Young
2023-10-21x86_64: disable failing tests, enable test-std testingJacob Young
2023-10-18x86_64: improve inline assembly supportJacob Young
* C++-style comments * indirect call operands * fix misleading immediate debug formatting
2023-10-10Step.Run: change `cwd` to `?Build.LazyPath` (#17418)Krzysztof Wolicki
closes #17409
2023-09-28test: add x86_64-linux-musl-no-lld as a test targetJakub Konka
2023-09-23tests: give explicit stack size to module tests on WASImlugg
I have observed the standard library tests overflowing the default WASI stack as of the previous commit. As best as I can tell, this isn't directly our fault: LLVM is just emitting less efficient code in debug builds with the new codegen patterns.
2023-09-19skip all mips tests due to LLVM 17 regressionsAndrew Kelley
Tracked by #16846
2023-09-19disable failing mips tests due to LLVM 17 regressionsAndrew Kelley
tracked by #16846
2023-08-18build: add build test check for availability of IOS SDK on the hostJakub Konka
2023-08-01llvm: fix data layout calculation for experimental llvm targetsJacob Young
Closes #16616
2023-07-31std: cleanup asm usageJacob Young
After fixing some issues with inline assembly in the C backend, the std cleanups have the side effect of making these functions compatible with the backend, allowing it to be used on linux without linking libc.
2023-07-30build system: follow-up enhancements regarding LazyPathAndrew Kelley
* introduce LazyPath.cwd_relative variant and use it for --zig-lib-dir. closes #12685 * move overrideZigLibDir and setMainPkgPath to options fields set once and then never mutated. * avoid introducing Build/util.zig * use doc comments for deprecation notices so that they show up in generated documentation. * introduce InstallArtifact.Options, accept it as a parameter to addInstallArtifact, and move override_dest_dir into it. Instead of configuring the installation via Compile step, configure the installation via the InstallArtifact step. In retrospect this is obvious. * remove calls to pushInstalledFile in InstallArtifact. See #14943 * rewrite InstallArtifact to not incorrectly observe whether a Compile step has any generated outputs. InstallArtifact is meant to trigger output generation. * fix child process evaluation code handling of `-fno-emit-bin`. * don't store out_h_filename, out_ll_filename, etc., pointlessly. these are all just simple extensions appended to the root name. * make emit_directory optional. It's possible to have nothing outputted, for example, if you're just type-checking. * avoid passing -femit-foo/-fno-emit-foo when it is the default * rename ConfigHeader.getTemplate to getOutput * deprecate addOptionArtifact * update the random number seed of Options step caching. * avoid using `inline for` pointlessly * avoid using `override_Dest_dir` pointlessly * avoid emitting an executable pointlessly in test cases Removes forceBuild and forceEmit. Let's consider these additions separately. Nearly all of the usage sites were suspicious.
2023-07-30Introduces Compile.forceBuild() and Compile.forceEmit(…)Felix "xq" Queißner
2023-07-30Introduces `Compile.getEmittedX()` functions, drops `Compile.emit_X`. ↵Felix (xq) Queißner
Resolves #14971
2023-07-30Build.zig rename orgy (aka: #16353). Renames FileSource to LazyPath and ↵Felix (xq) Queißner
removes functions that take literal paths instead of LazyPath.
2023-07-28llvm: fix SysV C abi for structs smaller than two eightbytesJacob Young
Closes #16038 Closes #16288
2023-07-26llvm: disable LTO on C ABI testsAndrew Kelley
This required disabling some failing tests. See #14908
2023-07-24zig fmt: make `--exclude` work on filesIan Johnson
Closes #16178
2023-05-24Fixes `WriteFile.getFileSource` failure on Windows (#15730)Mason Remaley
2023-05-03std.Build: use Step.* instead of *StepVeikka Tuominen
Follow up to 13eb7251d37759bd47403db304c6120c706fe353
2023-04-24CI: disable compiling std lib C backend test with clangAndrew Kelley
Unfortunately this requires about 8G of RAM for clang to compile and our Windows CI runners do not have this much.
2023-04-24Revert "tests: add a maxrss for compiling std lib C backend .c file"Andrew Kelley
This reverts commit c75e11bf6aa67f2ca62b9b6677d134592777bfec. Caused this problem on some machines: "this step declares an upper bound of 9126805504 bytes of memory, exceeding the available 7515721728 bytes of memory". Instead the next commit will disable std lib tests with the C backend on Windows.
2023-04-23tests: add a maxrss for compiling std lib C backend .c fileAndrew Kelley
I observed clang taking 8G to compile the output from the std lib tests using the C backend. This commit should make the Windows CI stop failing due to OOM.