aboutsummaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2020-03-25Fix type parsing errors on "always true" conditions. (#239)Greg
Specifically: selects.config_setting_group( name = "always_true", match_any = ["//conditions:default"], ) and selects.config_setting_group( name = "always_true", match_all = ["//conditions:default"], ) These should, as expected, always evaluate to True. Their implementation had a bug that failed the build outright.
2020-02-27Create a helper rule for selecting a file from outputs of another rul… (#233)irengrig
* Create a helper rule for selecting a file from outputs of another rule or a filegroup by subpath * Add tests * Address code review comments * + formatting Co-authored-by: c-parsons <cparsons@google.com>
2020-02-06Add absolute path tests for Windows (#230)Bor Kae Hwang
2020-02-03Remove old_sets.bzl (#231)Laurent Le Brun
It has been deprecated for a while, the code is not really compatible with Bazel depset-related changes.
2019-10-29make select_tests resilient to default configuration differences (#212)c-parsons
2019-10-08Remove genfiles_dir retrieval method (#203)upstream/1.0.1c-parsons
genfiles_dir has been the same as bin_dir for several Bazel releases, and is being fully removed in upcoming Bazel release.
2019-10-08Expose target_under_test's bin and genfiles path (#202)Samuel Freilich
The output directories for the target under test may differ when the target is under a config transition (config_settings is passed to analysistest.make). Since analysis tests may assert about the command-line of generated actions, and those command-lines may contain paths to output files, this is useful information to expose.
2019-09-17Add types.is_set() to test whether an arbitrary object is a set as defined ↵TechSY730
by new_sets.bzl. (#181) * Add sets.is_set() to test whether an arbitrary object is a set. Since using sets requires special API, it can be useful to determine whether an object is a set so special handling can be used. For example, if a method wants to be able to take a list or a set.
2019-09-17Delete maprule. Fix Buildifier lint errors. (#192)László Csomor
* Delete maprule. Fix Buildifier lint errors. Delete maprule and its tests: I wrote this rule, and I no longer plan to release it. Alternative rules exist that serve users' needs better. Fix also Buildifier lint errors that were making BuildKite red: https://buildkite.com/bazel/bazel-skylib/builds/659#ab98ac31-6e1c-415e-b8a8-5f8868340c7d
2019-06-14Create common build settings (#154)Julie
Create common simple build settings for people to use so they don't recreate these rules over and over again. This fulfills part of the SBC design doc: https://docs.google.com/document/d/1vc8v-kXjvgZOdQdnxPTaV0rrLxtP2XwnD2tAZlYJOqw/edit#bookmark=id.iiumwic0jphr
2019-06-05selects.bzl: Add config_setting_group for config_setting AND/OR-chaining (#89)Greg
* Add config_setting_group for config_setting AND/OR-chaining Implements https://github.com/bazelbuild/proposals/blob/master/designs/2018-11-09-config-setting-chaining.md. * buildifier lint fixes * Add tests * Add test stub for both match_any and match_all * Simplify the implementation and make it more correct. :) * Fix styling issues
2019-06-04Add some comments to unittest_test.sh (#159)c-parsons
2019-05-28Make sets.bzl point to new_sets.bzl instead of old_sets.bzl (#158)c-parsons
* Make sets.bzl point to new_sets.bzl instead of old_sets.bzl new_sets.bzl and old_sets.bzl should be removed in the following skylib release. Fixes #155. * update and rename test suites
2019-05-21run_binary: runs an executable as an action (#153)László Csomor
This rule is an alternative for genrule(): it can run a binary with the desired arguments, environment, inputs, and outputs, as a single build action, without shelling out to Bash. Fixes https://github.com/bazelbuild/bazel-skylib/issues/149
2019-05-14New rules: native_binary and native_test (#152)László Csomor
native_binary() wraps a pre-built binary or script in a *_binary rule interface. Rules like genrule can tool-depend on it, and it can be executed with "bazel run". This rule can also augment the binary with runfiles. native_test() is similar, but creates a testable rule instead of a binary rule. Fixes https://github.com/bazelbuild/bazel-skylib/issues/148 RELNOTES[NEW]: The new `native_binary()` and `native_test()` rules let you wrap a pre-built binary in a binary and test rule respectively.
2019-05-09write_file: support different line endings (#150)László Csomor
The user can specify which line endings they want write_file to use. This helps avoiding line ending mismatches with diff_test. Example: diff_test verifies that a rule generates correct output by comparing it to a checked-in "golden" file. Both files are text files, and the user builds on Windows but the golden file was written on Linux and git checkout preserved original line endings. Without explicitly specifying which line endings to use, this diff_test would fail on an otherwise good output. With explicit line endings we don't need to check in the golden file to git, we can just generate it with "auto" line endings.
2019-05-08Minor formatting changes plus doc updates (#147)c-parsons
2019-05-07Fix a number of misc issues to allow google usage of bazel-skylib (#146)c-parsons
* Fix a number of misc issues to allow google usage of bazel-skylib 1. Missing copyright header 2. Shell test fixes to use TEST_TMPDIR to have write access to directories 3. diff_test fix to use TEST_SRCDIR * added a comment as to why diff_test_tests is local * ran buildifier
2019-05-06Use TEST_SRCDIR for shell tests (#145)c-parsons
Fixes https://github.com/bazelbuild/bazel-skylib/issues/143
2019-05-01Add licenses() to all BUILD files. (#141)Thomas Van Lenten
2019-04-12diff_test: add rule and tests (#136)László Csomor
This new test rule compares two files and passes if the files match. On Linux/macOS/non-Windows, the test compares files using 'diff'. On Windows, the test compares files using 'fc.exe'. This utility is available on all Windows versions I tried (Windows 2008 Server, Windows 2016 Datacenter Core). See https://github.com/bazelbuild/bazel/issues/5508 See https://github.com/bazelbuild/bazel/issues/4319
2019-04-02Reformat with buildifier --warnings=all (#138)Thomas Van Lenten
Fixes some dictionaries to put things in the more common orders. Buildifer used to default to doing this check and reformatting which is why the //conditions:default got moved up in these in the first place.
2019-03-26Windows: fix tests for native test wrapper (#129)László Csomor
All tests work with `--incompatible_windows_native_test_wrapper` except for the ones already broken on Windows (//tests:analysis_test_e2e_test and //tests:unittest_e2e_test). See https://github.com/bazelbuild/bazel/issues/6622
2019-03-20maprule: hide it, not ready for public use. (#133)upstream/0.8.0László Csomor
Move maprule() to a private directory, to discourage use of it. I (@laszlocsomor) am planning breaking changes to it. Also move private files (rule implementations) to a subdirectory "rules/private/", to clean up the "rules/" directory.
2019-03-20Accept kwargs in dicts.add() (#130)Dave Lee
Accept kwargs in dicts.add()
2019-03-20maprule: add basic integration test (#131)László Csomor
2019-03-19e2e tests: make them run on Windows (#121)László Csomor
2019-03-19write_file: add rule and tests (#122)László Csomor
This PR adds two new rules: write_file and write_xfile. Both rules solve a common problem: to write a text file with user-defined contents. The problem is routinely solved using a genrule. That however requires Bash, since genrules execute Bash commands. Requiring Bash is a problem on Windows. The new rules do not require any shell. The only difference between the rules is that write_xfile creates an executable file while write_file doesn't. See https://github.com/bazelbuild/bazel/issues/4319
2019-03-18copy_file: add rule and tests (#123)László Csomor
This PR adds two new rules: copy_file and copy_xfile. Both rules solve a common problem: to copy one file to another location. The problem is routinely solved using a genrule. That however requires Bash, since genrules execute Bash commands. Requiring Bash is a problem on Windows. The new rules do not require Bash on Windows (only on other platforms). The only difference between the rules is that copy_xfile creates an executable file while copy_file doesn't. See https://github.com/bazelbuild/bazel/issues/4319
2019-03-04maprule: use ctx.resolve_tools (#117)László Csomor
In this PR: - In the _resolve_locations function: use the Bash-less ctx.resolve_tools function to resolve the runfiles manifests and inputs of tools, instead of using ctx.resolve_command for the same purpose. - In the _custom_envmap function: no longer resolve $(location) references when creating the envvars from custom_env, because those references were already resolved in _resolve_locations. The ctx.resolve_tools() method was added in this PR: https://github.com/bazelbuild/bazel/pull/7139 See design doc there.
2019-02-22fix a number of warnings found by Starlark analyzer (#114)c-parsons
2019-02-20analysistest API for retrieval of actions registered by target under testc-parsons
2019-02-19Add analysis_test rulec-parsons
Targets of this rule verify that targets can be analyzed successfully. This is similar to build_test, except no actual action execution of the underlying targets occur. analysis_test essentially verifies that `bazel build [targets] --nobuild` passes.
2019-02-14Add analysis-test test framework (#110)c-parsons
This framework allows for easy creation of unittest-like tests to make assertions on the provider-values returned by real targets.
2019-02-11Add basic shell testing for unittest.bzl (#108)c-parsons
2019-02-08Add `types.is_depset`. (#105)upstream/0.7.0Tony Allevato
2019-01-25Some doc fixes (#100)Thomas Van Lenten
* fix up Args doc block. * add a module doc string
2019-01-25Add a build_test rule. (#97)Thomas Van Lenten
* Add a build_test rule. This rules (marco) provides a 'test' target that can be used to ensure other targets build.
2019-01-14fix various linter errors (#93)c-parsons
2019-01-08maprule: an improved version of genrule() (#86)László Csomor
maprule() is an improved version of native.genrule(), with the following advantages: - Maprule can process source files in parallel, creating separate actions for each of them. - Maprule does not require declaring all output files. Instead you declare templates for the output files yielded for each source. Therefore N source files and M templates yield N*M outputs. - Maprule supports both Bash and cmd.exe syntax for its commands via the specialized rules bash_maprule and cmd_maprule. - Maprule's cmd attribute does deliberately not support $(location) expression nor Make Variables, in order to avoid issues and challenges with quoting. (In case of cmd.exe passing empty arguments is impossible). These paths can be passed as envvars instead. - Maprule's add_env attribute does support $(location) expressions (and some extra placeholders) and is the idiomatic way to pass execpaths of labels in "tools" or "srcs" (the shared sources available for all actions) to the command. See https://github.com/bazelbuild/bazel/issues/4319
2019-01-02Run buildifier --lint=fix over the files. (#88)Thomas Van Lenten
Fixes some dict order issues with the current version of buildifier.
2018-12-04unittest.bzl: supports Windows (#84)László Csomor
In this commit: - change unittest.bzl to declare a named output file instead of relying on the deprecated [1] default output name (ctx.outputs.executable). - define a new toolchain_type and toolchain rules for cmd.exe and for Bash (basically Windows and non-Windows) - register the new toolchains in workspace.bzl - let unittest.make-created test rules require the new toolchain_type - write the test output script as a Windows batch script or as a Shell script, depending on the selected toolchain This PR enables the Bazel team to break the Bash dependency (for test execution) on Windows, and can run Starlark unittests with the new, Windows-native test wrapper (still under development). See https://github.com/bazelbuild/bazel/issues/5508
2018-11-26Fix up lint issues. (#77)Thomas Van Lenten
Fixed via `buildifier --lint=fix` with buildifier 0.19.2.1
2018-11-14Remove supports for make(depset()) from new_sets (#68)bttk
With `--incompatible_depset_is_not_iterable` depset is no longer iterable. Remove tests that assumed it is. Bazel issue: https://github.com/bazelbuild/bazel/issues/5816
2018-09-28Rename a number of instances of 'skylark' to 'starlark' or 'bzl'c-parsons
Most notably, this renames/moves a few important identifiers: //:skylark_library.bzl -> //:bzl_library.bzl skylark_library -> bzl_library SkylarkLibraryInfo -> StarlarkLibraryInfo
2018-08-24Remove usage and suggests for lib.bzl.Thomas Van Lenten
As more things are added, lib.bzl is an anti-pattern as the cost of loading it actually just keeps increasing and most things will never use everything out of it. The pattern the should be used is to directly import the modules one uses.
2018-06-13Reformat .bzl files with buildifier and add format check.Thomas Van Lenten
Buildifier 0.12.0 includes initial support for reformatting .bzl files. - Reformat all the bzl files. - Expand the travis check to check the .bzl files also.
2018-05-09Add type checking functions.Taras Tsugrii
Even though it's not great to use type checks, they are frequently useful for checking input types of macros. Because there is no standard way of checking types, at least 2 types of checks are used: - `type(foo) == type([])` - `type(foo) == "list"` The first option is not very readable and the second option seem to be relying on an Bazel implementation detail. Encapsulating type checks into this library enables consistent and easy to understand type checking without explicitly relying on implementation details.
2018-05-04Add support for repr/str to new_sets (#42)upstream/0.4.0dmaclach
2018-05-01Skylint: stop using ctx.outputs.executable.Thomas Van Lenten
Be explicit about the file create/to run instead of using ctx.outputs.executable.