package test

import "github.com/open-policy-agent/opa/util/test"

Package test contains utilities used in the policy engine's test suite.

Deprecated: This package is intended for older projects transitioning from OPA v0.x and will remain for the lifetime of OPA v1.x, but its use is not recommended. For newer features and behaviours, such as defaulting to the Rego v1 syntax, use the corresponding components in the github.com/open-policy-agent/opa/v1 package instead. See https://www.openpolicyagent.org/docs/latest/v0-compatibility/ for more information.

Index

Functions

func ArrayIterationBenchmarkModule

func ArrayIterationBenchmarkModule(n int) string

ArrayIterationBenchmarkModule returns a module that iterates an array with `n` elements

func Eventually

func Eventually(t *testing.T, timeout time.Duration, f func() bool) bool

func EventuallyOrFatal

func EventuallyOrFatal(t *testing.T, timeout time.Duration, f func() bool)

func GenerateConcurrencyBenchmarkData

func GenerateConcurrencyBenchmarkData() (string, map[string]interface{})

GenerateConcurrencyBenchmarkData returns a module and data; the module checks some input parameters against that data in a simple API authz scheme.

func GenerateJSONBenchmarkData

func GenerateJSONBenchmarkData(k, v int) map[string]interface{}

GenerateJSONBenchmarkData returns a map of `k` keys and `v` key/value pairs.

func GenerateLargeJSONBenchmarkData

func GenerateLargeJSONBenchmarkData() map[string]interface{}

GenerateLargeJSONBenchmarkData returns a map of 100 keys and 100.000 key/value pairs.

func GenerateVirtualDocsBenchmarkData

func GenerateVirtualDocsBenchmarkData(numTotalRules, numHitRules int) (string, map[string]interface{})

GenerateVirtualDocsBenchmarkData generates a module and input; the numTotalRules and numHitRules create as many rules in the module to match/miss the returned input.

func MakeTempFS

func MakeTempFS(root, prefix string, files map[string]string) (rootDir string, cleanup func(), err error)

MakeTempFS creates a temporary directory structure for test purposes rooted at root. If root is empty, the dir is created in the default system temp location. If the creation fails, cleanup is nil and the caller does not have to invoke it. If creation succeeds, the caller should invoke cleanup when they are done.

func ObjectIterationBenchmarkModule

func ObjectIterationBenchmarkModule(n int) string

ObjectIterationBenchmarkModule returns a module that iterates an object with `n` key/val pairs

func PartialObjectBenchmarkCrossModule

func PartialObjectBenchmarkCrossModule(n int) []string

PartialObjectBenchmarkCrossModule returns a module with n "bench_test_" prefixed rules that each refer to another "cond_bench_" prefixed rule

func SetIterationBenchmarkModule

func SetIterationBenchmarkModule(n int) string

SetIterationBenchmarkModule returns a module that iterates a set with `n` elements

func Skip

func Skip(*testing.T)

Skip will skip this test on pull request CI runs. Used for slow test runners on GHA's darwin machines.

func WithTempFS

func WithTempFS(files map[string]string, f func(string))

WithTempFS creates a temporary directory structure and invokes f with the root directory path.

func WithTestFS

func WithTestFS(files map[string]string, inMemoryFS bool, f func(string, fs.FS))

WithTestFS creates a temporary file system of `files` in memory if `inMemoryFS` is true and invokes `f“ with that filesystem

Types

type BlockingWriter

type BlockingWriter = v1.BlockingWriter

Source Files

benchmark.go ci_skip.go doc.go tempfs.go tempus.go

Version
v1.4.2 (latest)
Published
May 2, 2025
Platform
linux/amd64
Imports
4 packages
Last checked
4 hours ago

Tools for package owners.