{"size": 1095, "ext": "scrbl", "max_stars_repo_path": "rackunit-doc/rackunit/scribblings/misc.scrbl", "max_stars_repo_name": "aymanosman/rackunit", "max_stars_repo_stars_event_min_datetime": "2015-10-23T20:17:20.000Z", "max_stars_repo_stars_event_max_datetime": "2022-02-08T15:53:52.000Z", "max_issues_repo_path": "rackunit-doc/rackunit/scribblings/misc.scrbl", "max_issues_repo_name": "aymanosman/rackunit", "max_issues_repo_issues_event_min_datetime": "2015-01-09T22:52:33.000Z", "max_issues_repo_issues_event_max_datetime": "2022-03-15T20:34:12.000Z", "max_forks_repo_path": "rackunit-doc/rackunit/scribblings/misc.scrbl", "max_forks_repo_name": "aymanosman/rackunit", "max_forks_repo_forks_event_min_datetime": "2015-01-09T19:10:10.000Z", "max_forks_repo_forks_event_max_datetime": "2021-06-10T14:55:18.000Z"}
{"max_stars_count": 10, "max_issues_count": 125, "max_forks_count": 34, "avg_line_length": 31.2857142857, "max_line_length": 82, "alphanum_fraction": 0.6694063927}
#lang scribble/doc
@(require "base.rkt")

@title{Miscellaneous Utilities}

The @racket[require/expose] macro allows you to access
bindings that a module does not provide.  It is useful for
testing the private functions of modules.

@defform[(require/expose module (id ...))]{

Requires @racket[id] from @racket[module] into the current module.  It
doesn't matter if the source module provides the bindings or not;
@racket[require/expose] can still get at them.

Note that @racket[require/expose] can be a bit fragile,
especially when mixed with compiled code.  Use at your own risk!
}

This example gets @racket[make-failure-test], which is defined in a RackUnit test:

@racketblock[
(require/expose rackunit/private/check-test (make-failure-test))
]

@defproc[(dynamic-require/expose [mod (or/c module-path?
                                            module-path-index?
                                            resolved-module-path?)]
                                 [name symbol?])
         any]{

Like @racket[dynamic-require], but gets internal bindings like
@racket[require/expose].
}
