lib/lucky_vite/README.md:### 4. Register the Vite runners lib/lucky_vite/README.md:- "dev": "yarn run mix", lib/lucky_vite/README.md:- "watch": "yarn run mix watch", lib/lucky_vite/README.md:- "prod": "yarn run mix --production", lib/lucky_vite/README.md:+ "build": "yarn run vite build", lib/lucky_vite/README.md:+ "watch": "yarn run vite build --watch" lib/lucky_vite/README.md:If you're using React with the `@vitejs/plugin-react` plugin, you need to add the `vite_react_refresh_tag` method before any other asset tags to inject the refresh runtime served by Vite: lib/lucky_vite/README.md: - _note_: this will be cleared on every run lib/lucky_vite/README.md:Make sure you have [Guardian.cr](https://github.com/f/guardian) installed. Then run: lib/lucky_vite/README.md:- run ameba for src and spec files lib/lucky_vite/README.md:- run the relevant spec for any file in src lib/lucky_vite/README.md:- run spec file whenever they are saved lib/lucky_vite/src/lucky_vite/asset_helpers.cr: {{ run "../lucky_vite_runners/asset_manifest_builder", config_file }} lib/lucky_vite/src/lucky_vite/asset_helpers.cr: {{ run "../lucky_vite_runners/missing_asset", path, asset_paths }} lib/lucky_vite/src/lucky_vite/asset_helpers.cr: # is found at runtime so it is possible the asset does not exist. Be sure to lib/lucky_vite/guardian.yml:run: bin/ameba lib/lucky_vite/guardian.yml:run: bin/spec_mirror %file% lib/lucky_vite/guardian.yml:run: bin/spec_mirror %file% lib/lucky_vite/.github/workflows/docs.yml: runs-on: ubuntu-latest lib/lucky_vite/.github/workflows/docs.yml: run: crystal docs lib/lucky_vite/.github/workflows/ci.yml: runs-on: ${{ matrix.os }} lib/lucky_vite/.github/workflows/ci.yml: run: shards install lib/lucky_vite/.github/workflows/ci.yml: run: crystal spec lib/lucky_vite/.github/workflows/ci.yml: run: crystal tool format --check lib/lucky_vite/.github/workflows/ci.yml: run: ./bin/ameba lib/lucky_vite/tasks/lucky_vite:source_file=./lib/lucky_vite/tasks/runner.cr grep: lib/lucky_vite/lib: warning: recursive directory loop lib/tasker/spec/tasker_spec.cr: puts "\nfailed cancel running tasks\n#{error.inspect_with_backtrace}" lib/tasker/spec/tasker_spec.cr: it "should schedule a task to run in the future" do lib/tasker/spec/tasker_spec.cr: # wait until the task should have run lib/tasker/spec/tasker_spec.cr: it "should run both a single task and a repeating task" do lib/tasker/spec/tasker_spec.cr: it "should schedule a task to run after a period of time" do lib/tasker/spec/tasker_spec.cr: puts "\nfailed cancel running tasks\n#{error.inspect_with_backtrace}" lib/tasker/spec/tasker_spec.cr: run_count = 0 lib/tasker/spec/tasker_spec.cr: task = sched.every(80.milliseconds) { run_count += 1; run_count } lib/tasker/spec/tasker_spec.cr: run_count.should eq(1) lib/tasker/spec/tasker_spec.cr: run_count.should eq(2) lib/tasker/spec/tasker_spec.cr: run_count.should eq(2) lib/tasker/spec/tasker_spec.cr: run_count.should eq(3) lib/tasker/spec/tasker_spec.cr: puts "\nfailed cancel running tasks\n#{error.inspect_with_backtrace}" lib/tasker/spec/tasker_spec.cr: puts "\nfailed cancel running tasks\n#{error.inspect_with_backtrace}" lib/tasker/spec/tasker_spec.cr: puts "\nfailed cancel running tasks\n#{error.inspect_with_backtrace}" lib/tasker/spec/tasker_spec.cr: puts "\nfailed cancel running tasks\n#{error.inspect_with_backtrace}" lib/tasker/README.md:Allows you to schedule tasks to run in the future and obtain the results. lib/tasker/README.md: # Canceling stops the schedule from running lib/tasker/README.md: # Calling get will pause until after the next schedule has run lib/tasker/README.md: # For running in a job in a particular time zone: lib/tasker/README.md: # a subscribe step is always run, even if it's already running lib/tasker/src/tasker/pipeline.cr: # check if the pipline is running lib/tasker/src/tasker/pipeline.cr: # check if the pipline is running lib/tasker/src/tasker/future.cr: super(run_immediately: false, &block) lib/tasker/src/tasker/future.cr: # As we are controlling the delay we need direct access to run_compute lib/tasker/src/tasker/future.cr: run_compute lib/tasker/src/tasker/timeout.cr: # scheudle this fiber to run again lib/tasker/.github/workflows/CI.yml: runs-on: ${{ matrix.os }} lib/tasker/.github/workflows/CI.yml: run: shards install --ignore-crystal-version lib/tasker/.github/workflows/CI.yml: run: ./bin/ameba lib/tasker/.github/workflows/CI.yml: run: crystal tool format --check lib/tasker/.github/workflows/CI.yml: run: crystal spec -v --error-trace grep: lib/tasker/lib: warning: recursive directory loop lib/zow_token/guardian.yml:run: bin/ameba %file% lib/zow_token/guardian.yml:run: bin/ameba %file% lib/zow_token/guardian.yml:run: bin/spec_mirror %file% lib/zow_token/guardian.yml:run: bin/spec_mirror %file% grep: lib/zow_token/lib: warning: recursive directory loop lib/jwt/.github/workflows/ci.yml: runs-on: ${{ matrix.os }} lib/jwt/.github/workflows/ci.yml: run: shards install --ignore-crystal-version lib/jwt/.github/workflows/ci.yml: run: ./bin/ameba lib/jwt/.github/workflows/ci.yml: run: crystal tool format --check lib/jwt/.github/workflows/ci.yml: run: crystal spec -v --error-trace grep: lib/jwt/lib: warning: recursive directory loop grep: lib/awscr-signer/lib: warning: recursive directory loop lib/selenium/spec/support/test_driver_factory.cr: raise ArgumentError.new("unknown browser for running tests: #{browser}") lib/selenium/spec/features/session_spec.cr: it "run multiple browsers on separate process" do lib/selenium/README.md:Creating a driver this way assumes that you have the driver running already. lib/selenium/README.md:Rather than running chromedriver yourself, you can give the driver a service which will run the process for you. lib/selenium/README.md:You must call `driver.stop` when you are finished or it will leave the service running. lib/selenium/README.md:Run `crystal spec` to run the tests. It will run the tests in headless mode. lib/selenium/README.md:To run the tests with chrome headlessly: lib/selenium/README.md:To run the tests with firefox headlessly: lib/selenium/src/selenium/driver.cr:# or else the process it starts will continue running on your computer after the program ends lib/selenium/src/selenium/service.cr: verify_running lib/selenium/src/selenium/service.cr: private def verify_running lib/selenium/src/selenium/service.cr: raise "Unable to connect to driver process. Try running in DEBUG mode to find more information." unless result lib/selenium/.github/workflows/docs.yml: runs-on: ubuntu-latest lib/selenium/.github/workflows/docs.yml: run: shards install lib/selenium/.github/workflows/docs.yml: run: crystal docs lib/selenium/.github/workflows/specs.yml: runs-on: ubuntu-latest lib/selenium/.github/workflows/specs.yml: run: shards install lib/selenium/.github/workflows/specs.yml: run: crystal tool format --check lib/selenium/.github/workflows/specs.yml: runs-on: ${{ matrix.os }} lib/selenium/.github/workflows/specs.yml: run: shards install --ignore-crystal-version --skip-executables --skip-postinstall lib/selenium/.github/workflows/specs.yml: run: crystal spec --tag "~chrome" grep: lib/selenium/lib: warning: recursive directory loop lib/habitat/README.md:that will run your custom validation. This can be useful if your lib/habitat/src/habitat/temp_config.cr: # duration of the block. When the block is finished running, Habitat will lib/habitat/.github/workflows/docs.yml: runs-on: ubuntu-latest lib/habitat/.github/workflows/docs.yml: run: shards install lib/habitat/.github/workflows/docs.yml: run: crystal docs lib/habitat/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/habitat/.github/workflows/ci.yml: run: shards install lib/habitat/.github/workflows/ci.yml: run: crystal tool format --check lib/habitat/.github/workflows/ci.yml: run: ./bin/ameba lib/habitat/.github/workflows/ci.yml: runs-on: ${{ matrix.os }} lib/habitat/.github/workflows/ci.yml: run: shards install --skip-postinstall --skip-executables lib/habitat/.github/workflows/ci.yml: run: crystal spec grep: lib/habitat/lib: warning: recursive directory loop lib/lucky_router/spec/integration_spec.cr: # Here to makes sure things run super fast even with lots of routes lib/lucky_router/README.md:4. Run `./bin/test` to run the specs, build shards, and check formatting lib/lucky_router/bin/test:printf "\nrunning specs with 'crystal spec'\n\n" lib/lucky_router/.github/workflows/docs.yml: runs-on: ubuntu-latest lib/lucky_router/.github/workflows/docs.yml: run: shards install lib/lucky_router/.github/workflows/docs.yml: run: crystal docs lib/lucky_router/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/lucky_router/.github/workflows/ci.yml: run: shards install lib/lucky_router/.github/workflows/ci.yml: run: crystal tool format --check lib/lucky_router/.github/workflows/ci.yml: run: ./bin/ameba lib/lucky_router/.github/workflows/ci.yml: runs-on: ${{ matrix.os }} lib/lucky_router/.github/workflows/ci.yml: run: shards install lib/lucky_router/.github/workflows/ci.yml: run: crystal spec grep: lib/lucky_router/lib: warning: recursive directory loop lib/authentic/spec/spec_helper.cr: AppDatabase.truncate lib/authentic/README.md:1. Run `scripts/test` to run the specs, build shards, and check formatting lib/authentic/README.md:To run the tests: lib/authentic/README.md:1. Run `scripts/test` to run the specs, build shards, and check formatting lib/authentic/README.md:You can run individual tests like this: `docker-compose run --rm app crystal spec path/to/spec.cr` lib/authentic/README.md:> Remember to run `docker-compose down` when you're done. This will stop the lib/authentic/bin/test:printf "\nrunning specs with 'crystal spec'\n\n" lib/authentic/.github/workflows/docs.yml: runs-on: ubuntu-latest lib/authentic/.github/workflows/docs.yml: run: shards install lib/authentic/.github/workflows/docs.yml: run: crystal docs lib/authentic/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/authentic/.github/workflows/ci.yml: run: shards install lib/authentic/.github/workflows/ci.yml: run: crystal tool format --check lib/authentic/.github/workflows/ci.yml: run: ./bin/ameba lib/authentic/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/authentic/.github/workflows/ci.yml: run: shards install lib/authentic/.github/workflows/ci.yml: run: crystal tasks.cr db.setup lib/authentic/.github/workflows/ci.yml: run: crystal spec lib/authentic/scripts/test: printf "\nFormat the code with: docker-compose run --rm app crystal tool format src spec\n\n" lib/authentic/scripts/setup:docker-compose run app shards install lib/authentic/tasks.cr:LuckyTask::Runner.run grep: lib/authentic/lib: warning: recursive directory loop lib/lucky_task/spec/lucky_task/runner_spec.cr: it "adds tasks to the runner when task classes are created" do lib/lucky_task/spec/lucky_task/runner_spec.cr: .run(args: ["my.cool_task"]) lib/lucky_task/spec/lucky_task/runner_spec.cr: LuckyTask::Runner.run(args: ["my.cool_task", help_arg], io: io) lib/lucky_task/spec/lucky_task/runner_spec.cr: .run(args: [] of String) lib/lucky_task/spec/lucky_task/runner_spec.cr: .run(args: ["not.real"]) lib/lucky_task/README.md:LuckyTask::Runner.run lib/lucky_task/src/lucky_task/runner.cr: def self.run(args = ARGV, io : IO = STDERR) lib/lucky_task/src/lucky_task/runner.cr: To see a list of available tasks, run #{"lucky tasks".colorize(:green)} lib/lucky_task/.github/workflows/docs.yml: runs-on: ubuntu-latest lib/lucky_task/.github/workflows/docs.yml: run: shards install lib/lucky_task/.github/workflows/docs.yml: run: crystal docs lib/lucky_task/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/lucky_task/.github/workflows/ci.yml: run: shards install lib/lucky_task/.github/workflows/ci.yml: run: crystal tool format --check lib/lucky_task/.github/workflows/ci.yml: run: ./bin/ameba lib/lucky_task/.github/workflows/ci.yml: runs-on: ${{ matrix.os }} lib/lucky_task/.github/workflows/ci.yml: run: shards install --skip-postinstall --skip-executables lib/lucky_task/.github/workflows/ci.yml: run: crystal spec grep: lib/lucky_task/lib: warning: recursive directory loop lib/lucky_cache/.github/workflows/docs.yml: runs-on: ubuntu-latest lib/lucky_cache/.github/workflows/docs.yml: run: shards install lib/lucky_cache/.github/workflows/docs.yml: run: crystal docs lib/lucky_cache/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/lucky_cache/.github/workflows/ci.yml: run: shards install lib/lucky_cache/.github/workflows/ci.yml: run: crystal tool format --check lib/lucky_cache/.github/workflows/ci.yml: run: ./bin/ameba lib/lucky_cache/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/lucky_cache/.github/workflows/ci.yml: run: shards install lib/lucky_cache/.github/workflows/ci.yml: run: crystal spec grep: lib/lucky_cache/lib: warning: recursive directory loop lib/carbon_zow_adapter/guardian.yml:run: bin/ameba %file% lib/carbon_zow_adapter/guardian.yml:run: bin/ameba %file% lib/carbon_zow_adapter/guardian.yml:run: bin/spec_mirror %file% lib/carbon_zow_adapter/guardian.yml:run: bin/spec_mirror %file% grep: lib/carbon_zow_adapter/lib: warning: recursive directory loop lib/pundit/README.md:The easiest way to create new policies is to use the built-in Lucky task! After following the steps in the Installation section, simply run `lucky gen.policy Book`, for example, to create a new `BookPolicy` in your application. lib/pundit/src/pundit/action_helpers.cr: {% caller_class_base_singular = run("./run_macros/singularize.cr", caller_class_base_plural) %} lib/pundit/src/pundit/application_policy.cr:# Should you with to update the default policy definitions, run `lucky pundit.init` and override where needed. lib/pundit/.github/workflows/shard.yml: runs-on: ubuntu-latest lib/pundit/.github/workflows/shard.yml: run: crystal tool format --check lib/pundit/.github/workflows/shard.yml: key: ${{ runner.os }}-crystal-${{ matrix.crystal_version }}-${{ hashFiles('**/shard.lock') }} lib/pundit/.github/workflows/shard.yml: ${{ runner.os }}-crystal-${{ matrix.crystal_version }} lib/pundit/.github/workflows/shard.yml: run: shards check || shards install --ignore-crystal-version lib/pundit/.github/workflows/shard.yml: run: ./bin/ameba lib/pundit/.github/workflows/shard.yml: run: crystal spec lib/pundit/.github/workflows/docs.yml: runs-on: ubuntu-latest lib/pundit/.github/workflows/docs.yml: run: crystal docs --project-name=Pundit --project-version=${GITHUB_REF##*/} grep: lib/pundit/lib: warning: recursive directory loop lib/bindata/spec/bindata_remaining_bytes_spec.cr: it "runs verification as expected" do lib/bindata/spec/bindata_remaining_bytes_spec.cr: it "runs verification as expected while writing" do lib/bindata/.github/workflows/CI.yml: runs-on: ${{ matrix.os }} lib/bindata/.github/workflows/CI.yml: run: shards install --ignore-crystal-version lib/bindata/.github/workflows/CI.yml: run: ./bin/ameba lib/bindata/.github/workflows/CI.yml: run: crystal tool format --check lib/bindata/.github/workflows/CI.yml: run: crystal spec -v --error-trace grep: lib/bindata/lib: warning: recursive directory loop grep: lib/shell-table/lib: warning: recursive directory loop lib/cable/.guardian.yml:run: file=%file%; file=${file/%.cr/_spec.cr}; file=${file/#.\/src/.\/spec}; crystal spec $file lib/cable/.guardian.yml:run: crystal spec %file% lib/cable/.guardian.yml:run: shards lib/cable/spec/cable/handler_spec.cr: Cable::WebsocketPinger.run_every(0.001) do lib/cable/spec/cable/handler_spec.cr: ws2.run lib/cable/spec/cable/handler_spec.cr: ws2.run lib/cable/spec/cable/handler_spec.cr: ws2.run lib/cable/spec/cable/handler_spec.cr: ws2.run lib/cable/spec/cable/handler_spec.cr: ws2.run lib/cable/spec/cable/handler_spec.cr: ws2.run lib/cable/spec/cable/handler_spec.cr: ws2.run lib/cable/spec/cable/handler_spec.cr: # This is to simulate one broadcast from server, so we `ws2.run` and loose control of the flow lib/cable/spec/cable/handler_spec.cr: ws2.run lib/cable/spec/cable/handler_spec.cr: ws2.run lib/cable/spec/cable/handler_spec.cr: ws2.run lib/cable/spec/cable/handler_spec.cr: ws3.run lib/cable/spec/cable/handler_spec.cr: ws4.run lib/cable/README.md:However, since we cannot use two conflicting shards, we only run tests against our officially supported shard. lib/cable/README.md: # `after_subscribed` can accept 1 or more callbacks to be run in order lib/cable/README.md:When the first connection is made, the cable server starts a Redis PING/PONG task, which runs every 15 seconds. This helps to keep the Redis connection from going stale. lib/cable/README.md:2. Ensure you truncate the message sizes client side. lib/cable/src/cable/websocket_pinger.cr: def self.run_every(value : Int32 | Float64, &) lib/cable/src/cable/connection.cr: channel.run_after_subscribed_callbacks unless channel.subscription_rejected? lib/cable/src/cable/remote_connections.cr: # NOTE: This code may run on a different machine than where the `@server.connections` lib/cable/src/cable/remote_connections.cr: # the backend (i.e. redis), and let that broadcast out to all running instances. lib/cable/src/cable/channel.cr: def run_after_subscribed_callbacks lib/cable/src/cable/channel.cr: def run_after_subscribed_callbacks lib/cable/src/backend/redis/legacy/backend.cr:# So we monkey patch to run the command, ignore it, and return Nil lib/cable/src/backend/redis/backend.cr: result = redis_publish.run({"ping"}) lib/cable/examples/non-action-cable-js-client-with-lucky.html: lib/cable/.github/workflows/docs.yml: runs-on: ubuntu-latest lib/cable/.github/workflows/docs.yml: run: shards install lib/cable/.github/workflows/docs.yml: run: crystal docs lib/cable/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/cable/.github/workflows/ci.yml: key: ${{ runner.os }}-crystal lib/cable/.github/workflows/ci.yml: run: shards install lib/cable/.github/workflows/ci.yml: run: crystal tool format --check lib/cable/.github/workflows/ci.yml: run: ./bin/ameba lib/cable/.github/workflows/ci.yml: run: crystal spec grep: lib/cable/lib: warning: recursive directory loop grep: lib/content_disposition/lib: warning: recursive directory loop lib/teeplate/.circleci/config.yml: - run: shards lib/teeplate/.circleci/config.yml: - run: bin/test lib/teeplate/.circleci/config.yml: - run: shards lib/teeplate/.circleci/config.yml: - run: bin/test lib/teeplate/spec/support/have_files/expectation.cr: run "git", %w(init), chdir: dir lib/teeplate/spec/support/have_files/expectation.cr: run "git", %w(config user.email "test@a.b.com"), chdir: dir lib/teeplate/spec/support/have_files/expectation.cr: run "git", %w(config user.name "test"), chdir: dir lib/teeplate/spec/support/have_files/expectation.cr: run "git", %w(checkout -b actual), chdir: dir lib/teeplate/spec/support/have_files/expectation.cr: run "git", %w(add .), chdir: dir lib/teeplate/spec/support/have_files/expectation.cr: run "git", %w(commit -m "initial"), chdir: dir lib/teeplate/spec/support/have_files/expectation.cr: run "git", %w(checkout -b expected), chdir: dir lib/teeplate/spec/support/have_files/expectation.cr: run "git", %w(add .), chdir: dir lib/teeplate/spec/support/have_files/expectation.cr: diff = run("git", %w(--no-pager diff --cached), chdir: dir).rstrip lib/teeplate/spec/support/have_files/expectation.cr: run "git", %w(commit -m "expected"), chdir: dir lib/teeplate/spec/support/have_files/expectation.cr: run "git", %w(checkout actual), chdir: dir lib/teeplate/spec/support/have_files/expectation.cr: run "git", %w(add .), chdir: dir lib/teeplate/spec/support/have_files/expectation.cr: diff = run("git", %w(--no-pager diff --cached), chdir: dir).rstrip lib/teeplate/spec/support/have_files/expectation.cr: run "git", %w(commit -m "actual"), chdir: dir lib/teeplate/spec/support/have_files/expectation.cr: diff = run("git", %w(--no-pager diff expected actual), chdir: dir).rstrip lib/teeplate/spec/support/have_files/expectation.cr: diff_stat = run("git", %w(--no-pager diff expected actual --stat), chdir: dir).rstrip lib/teeplate/spec/support/have_files/expectation.cr: def run(command, args, chdir = nil) lib/teeplate/spec/support/have_files/expectation.cr: status = Process.run(command, args, shell: true, chdir: chdir, output: STDOUT, error: STDERR) lib/teeplate/spec/fix/0015_fix_heredoc_usage_when_embedding_blob_spec.cr: {{ run(system("cd #{__DIR__}/../../src/lib/file_tree/macros && pwd").strip + "/directory", __DIR__ + "/0015_fix_heredoc_usage_when_embedding_blob").stringify }} lib/teeplate/spec/internal/filemode_spec.cr: {{ run("#{__DIR__}/filemode/embed_filemode.cr") }} lib/teeplate/src/lib/file_tree.cr: # It runs another macro process that collects template files and embeds the files as code. lib/teeplate/src/lib/file_tree.cr: {{ run(__DIR__ + "/file_tree/macros/directory", dir.id) }} grep: lib/teeplate/lib: warning: recursive directory loop lib/lucky_favicon/README.md:run: lib/lucky_favicon/README.md:- run ameba for src and spec files lib/lucky_favicon/README.md:- run the relevant spec for any file in src lib/lucky_favicon/README.md:- run spec file whenever they are saved lib/lucky_favicon/guardian.yml:run: bin/ameba %file% lib/lucky_favicon/guardian.yml:run: bin/ameba %file% lib/lucky_favicon/guardian.yml:run: bin/spec_mirror %file% lib/lucky_favicon/guardian.yml:run: bin/spec_mirror %file% lib/lucky_favicon/.github/workflows/docs.yml: runs-on: ubuntu-latest lib/lucky_favicon/.github/workflows/docs.yml: run: shards install lib/lucky_favicon/.github/workflows/docs.yml: run: crystal docs lib/lucky_favicon/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/lucky_favicon/.github/workflows/ci.yml: run: SHARDS_OVERRIDE=${{ matrix.shard_file }} shards install lib/lucky_favicon/.github/workflows/ci.yml: run: crystal tool format --check lib/lucky_favicon/.github/workflows/ci.yml: run: ./bin/ameba lib/lucky_favicon/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/lucky_favicon/.github/workflows/ci.yml: run: SHARDS_OVERRIDE=${{ matrix.shard_file }} shards install --ignore-crystal-version lib/lucky_favicon/.github/workflows/ci.yml: run: crystal spec grep: lib/lucky_favicon/lib: warning: recursive directory loop lib/future/spec/future_spec.cr: f.running?.should be_true lib/future/spec/future_spec.cr: f.running?.should be_true lib/future/spec/future_spec.cr: f.running?.should be_true lib/future/spec/future_spec.cr: f.running?.should be_true lib/future/spec/future_spec.cr: f.running?.should be_true lib/future/src/future.cr: def initialize(run_immediately = true, delay = 0.0, &@block : -> R) lib/future/src/future.cr: spawn_compute if run_immediately lib/future/src/future.cr: def running? lib/future/src/future.cr: run_compute lib/future/src/future.cr: spawn { run_compute } lib/future/src/future.cr: private def run_compute lib/future/src/future.cr:# Conditionally spawns a `Fiber` to run *&block* in the background. lib/future/src/future.cr:# *&block* doesn't run by default, only when `get` is called. lib/future/src/future.cr: Future::Compute.new run_immediately: false, &block grep: lib/future/lib: warning: recursive directory loop lib/db/spec/support/http.cr:# Helper method which runs *server* lib/db/spec/support/http.cr:def run_server(server) lib/db/spec/http_client_pool_spec.cr: run_server(server) do lib/db/src/spec.cr: # DB::DriverSpecs(DB::Any).run do lib/db/src/spec.cr: # # Configure the appropiate syntax for different commands needed to run the specs lib/db/src/spec.cr: # for different commands and allow all the specs to run: `binding_syntax`, `create_table_1column_syntax`, lib/db/src/spec.cr: def self.run(description = "as a db") lib/db/src/db/statement.cr: # This macro allows injecting code to be run before and after the execution lib/db/.github/workflows/ci.yml: runs-on: ${{ matrix.os }} lib/db/.github/workflows/ci.yml: run: crystal spec lib/db/.github/workflows/ci.yml: run: crystal tool format; git diff --exit-code grep: lib/db/lib: warning: recursive directory loop lib/openssl_ext/.github/workflows/ci.yml: runs-on: ${{ matrix.os }} lib/openssl_ext/.github/workflows/ci.yml: run: shards install --ignore-crystal-version lib/openssl_ext/.github/workflows/ci.yml: run: ./bin/ameba lib/openssl_ext/.github/workflows/ci.yml: run: crystal tool format --check lib/openssl_ext/.github/workflows/ci.yml: run: crystal spec -v --error-trace lib/openssl_ext/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/openssl_ext/.github/workflows/ci.yml: run: shards install --ignore-crystal-version --skip-postinstall --skip-executables lib/openssl_ext/.github/workflows/ci.yml: run: crystal spec -v --error-trace grep: lib/openssl_ext/lib: warning: recursive directory loop lib/fnv/.travis.yml:# Uncomment the following if you'd like Travis to run specs and check code formatting lib/fnv/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/fnv/.github/workflows/ci.yml: run: shards install lib/fnv/.github/workflows/ci.yml: run: crystal spec grep: lib/fnv/lib: warning: recursive directory loop lib/cmark/README.md:Add the dependency to your `shard.yml` and then run `shards install`: lib/cmark/src/cmark/node_type.cr: # these are not predefined constants, they are dynamically registered at runtime. grep: lib/cmark/cmark: binary file matches lib/cmark/.github/workflows/documentation.yml: runs-on: ubuntu-latest lib/cmark/.github/workflows/documentation.yml: run: shards install lib/cmark/.github/workflows/documentation.yml: run: crystal docs lib/cmark/.github/workflows/crystal.yml: runs-on: ubuntu-latest lib/cmark/.github/workflows/crystal.yml: run: shards install lib/cmark/.github/workflows/crystal.yml: run: crystal tool format --check lib/cmark/.github/workflows/crystal.yml: runs-on: ${{ matrix.os }} lib/cmark/.github/workflows/crystal.yml: run: shards install lib/cmark/.github/workflows/crystal.yml: run: cd ext && make && cd - lib/cmark/.github/workflows/crystal.yml: run: crystal spec grep: lib/cmark/ext/libcmark-gfm.a: binary file matches grep: lib/cmark/ext/libcmark-gfm-extensions.a: binary file matches lib/cmark/ext/cmark-gfm/Makefile: test/run-cmark-fuzz $(CMARK_FUZZ) lib/cmark/ext/cmark-gfm/Makefile:# for more accurate results, run with lib/cmark/ext/cmark-gfm/Makefile: docker run --privileged -t -i -v $(CURDIR):/src/cmark-gfm -w /src/cmark-gfm cmark-gfm /bin/bash lib/cmark/ext/cmark-gfm/CheckFileOffsetBits.cmake:# modify the way the check is run: lib/cmark/ext/cmark-gfm/extensions/table.c: cmark_strbuf_truncate(res, w); lib/cmark/ext/cmark-gfm/extensions/tasklist.c: cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 2); lib/cmark/ext/cmark-gfm/README.md:prefix, pass the `INSTALL_PREFIX` variable if you run `make` for the lib/cmark/ext/cmark-gfm/README.md:To run a benchmark: lib/cmark/ext/cmark-gfm/README.md:To run a test for memory leaks using `valgrind`: lib/cmark/ext/cmark-gfm/README.md:To run a "fuzz test" against ten long randomly generated inputs: lib/cmark/ext/cmark-gfm/README.md:run with: lib/cmark/ext/cmark-gfm/src/commonmark.c: cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 2); lib/cmark/ext/cmark-gfm/src/commonmark.c: cmark_strbuf_truncate(renderer->prefix, lib/cmark/ext/cmark-gfm/src/commonmark.c: cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 4); lib/cmark/ext/cmark-gfm/src/commonmark.c: cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 4); lib/cmark/ext/cmark-gfm/src/node.c: // Check that we haven't run out of bits. lib/cmark/ext/cmark-gfm/src/plaintext.c: cmark_strbuf_truncate(renderer->prefix, lib/cmark/ext/cmark-gfm/src/plaintext.c: cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 4); lib/cmark/ext/cmark-gfm/src/blocks.c: cmark_strbuf_truncate(ln, i); lib/cmark/ext/cmark-gfm/src/CMakeLists.txt: # cmark is written in C but the libFuzzer runtime is written in C++ which lib/cmark/ext/cmark-gfm/src/CMakeLists.txt: # needs to link against the C++ runtime. Explicitly link it into cmark-fuzz lib/cmark/ext/cmark-gfm/src/render.c: // truncate at last_breakable lib/cmark/ext/cmark-gfm/src/render.c: cmark_strbuf_truncate(renderer->buffer, renderer->last_breakable); lib/cmark/ext/cmark-gfm/src/inlines.c: cmark_strbuf_truncate(s, w - 2); lib/cmark/ext/cmark-gfm/src/inlines.c: cmark_strbuf_truncate(s, w); lib/cmark/ext/cmark-gfm/src/cmark-gfm.h:/** The library version as integer for runtime checks. Also available as lib/cmark/ext/cmark-gfm/src/cmark-gfm.h:/** The library version string for runtime checks. Also available as lib/cmark/ext/cmark-gfm/src/buffer.c:void cmark_strbuf_truncate(cmark_strbuf *buf, bufsize_t len) { lib/cmark/ext/cmark-gfm/src/buffer.c: cmark_strbuf_truncate(s, w); lib/cmark/ext/cmark-gfm/src/buffer.c: cmark_strbuf_truncate(buf, w); lib/cmark/ext/cmark-gfm/src/buffer.h:void cmark_strbuf_truncate(cmark_strbuf *buf, bufsize_t len); lib/cmark/ext/cmark-gfm/build/CMakeCache.txt://Run-time variable data (LOCALSTATEDIR/run) lib/cmark/ext/cmark-gfm/build/CMakeCache.txt://If set, runtime paths are not added when installing shared libraries, lib/cmark/ext/cmark-gfm/build/CMakeCache.txt://If set, runtime paths are not added when using shared libraries. lib/cmark/ext/cmark-gfm/build/CMakeCache.txt://CMAKE_INSTALL_PREFIX during last run lib/cmark/ext/cmark-gfm/build/Makefile:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/Makefile:# The top-level build directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/Makefile:# Special rule to run CMake to check the build system integrity. lib/cmark/ext/cmark-gfm/build/CMakeFiles/Makefile2:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/CMakeFiles/Makefile2:# The top-level build directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/CMakeFiles/Makefile2:# Special rule to run CMake to check the build system integrity. lib/cmark/ext/cmark-gfm/build/extensions/Makefile:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/extensions/Makefile:# The top-level build directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/extensions/Makefile:# Special rule to run CMake to check the build system integrity. grep: lib/cmark/ext/cmark-gfm/build/extensions/CMakeFiles/libcmark-gfm-extensions.dir/table.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/extensions/CMakeFiles/libcmark-gfm-extensions.dir/tasklist.c.o: binary file matches lib/cmark/ext/cmark-gfm/build/extensions/CMakeFiles/libcmark-gfm-extensions.dir/build.make:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/extensions/CMakeFiles/libcmark-gfm-extensions.dir/build.make:# The top-level build directory on which CMake was run. grep: lib/cmark/ext/cmark-gfm/build/extensions/CMakeFiles/libcmark-gfm-extensions_static.dir/table.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/extensions/CMakeFiles/libcmark-gfm-extensions_static.dir/tasklist.c.o: binary file matches lib/cmark/ext/cmark-gfm/build/extensions/CMakeFiles/libcmark-gfm-extensions_static.dir/build.make:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/extensions/CMakeFiles/libcmark-gfm-extensions_static.dir/build.make:# The top-level build directory on which CMake was run. grep: lib/cmark/ext/cmark-gfm/build/extensions/libcmark-gfm-extensions.so.0.29.0.gfm.6: binary file matches grep: lib/cmark/ext/cmark-gfm/build/extensions/libcmark-gfm-extensions.so: binary file matches grep: lib/cmark/ext/cmark-gfm/build/extensions/libcmark-gfm-extensions.a: binary file matches lib/cmark/ext/cmark-gfm/build/src/Makefile:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/src/Makefile:# The top-level build directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/src/Makefile:# Special rule to run CMake to check the build system integrity. lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/cmark-gfm.dir/build.make:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/cmark-gfm.dir/build.make:# The top-level build directory on which CMake was run. grep: lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm.dir/buffer.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm.dir/render.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm.dir/plaintext.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm.dir/commonmark.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm.dir/inlines.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm.dir/blocks.c.o: binary file matches lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm.dir/build.make:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm.dir/build.make:# The top-level build directory on which CMake was run. grep: lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm_static.dir/buffer.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm_static.dir/render.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm_static.dir/plaintext.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm_static.dir/commonmark.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm_static.dir/inlines.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm_static.dir/blocks.c.o: binary file matches lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm_static.dir/build.make:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/src/CMakeFiles/libcmark-gfm_static.dir/build.make:# The top-level build directory on which CMake was run. grep: lib/cmark/ext/cmark-gfm/build/src/libcmark-gfm.so: binary file matches grep: lib/cmark/ext/cmark-gfm/build/src/libcmark-gfm.so.0.29.0.gfm.6: binary file matches grep: lib/cmark/ext/cmark-gfm/build/src/libcmark-gfm.a: binary file matches lib/cmark/ext/cmark-gfm/build/man/Makefile:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/man/Makefile:# The top-level build directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/man/Makefile:# Special rule to run CMake to check the build system integrity. lib/cmark/ext/cmark-gfm/build/api_test/Makefile:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/api_test/Makefile:# The top-level build directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/api_test/Makefile:# Special rule to run CMake to check the build system integrity. grep: lib/cmark/ext/cmark-gfm/build/api_test/CMakeFiles/api_test.dir/harness.c.o: binary file matches grep: lib/cmark/ext/cmark-gfm/build/api_test/CMakeFiles/api_test.dir/main.c.o: binary file matches lib/cmark/ext/cmark-gfm/build/api_test/CMakeFiles/api_test.dir/build.make:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/api_test/CMakeFiles/api_test.dir/build.make:# The top-level build directory on which CMake was run. grep: lib/cmark/ext/cmark-gfm/build/api_test/api_test: binary file matches lib/cmark/ext/cmark-gfm/build/testdir/Makefile:# The top-level source directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/testdir/Makefile:# The top-level build directory on which CMake was run. lib/cmark/ext/cmark-gfm/build/testdir/Makefile:# Special rule to run CMake to check the build system integrity. lib/cmark/ext/cmark-gfm/bench/stats.py:# n - time for running the program with no input lib/cmark/ext/cmark-gfm/bench/stats.py:# m - time for running it with the benchmark input lib/cmark/ext/cmark-gfm/man/man3/cmark-gfm.3:The library version as integer for runtime checks. Also available as lib/cmark/ext/cmark-gfm/man/man3/cmark-gfm.3:The library version string for runtime checks. Also available as macro lib/cmark/ext/cmark-gfm/fuzz/README.md:To build and run the quadratic fuzzer: lib/cmark/ext/cmark-gfm/test/CMakeLists.txt:# By default, we run the spec tests only if python3 is available. lib/cmark/ext/cmark-gfm/test/CMakeLists.txt: message("\n*** A python 3 interpreter is required to run the spec tests.\n") lib/cmark/ext/cmark-gfm/test/pathological_tests.py:def run_test(inp, regex): lib/cmark/ext/cmark-gfm/test/pathological_tests.py: p = multiprocessing.Process(target=run_test, args=(inp, regex)) lib/cmark/ext/cmark-gfm/test/spec.txt:accompanying script `spec_tests.py` can be used to run the tests lib/cmark/ext/cmark-gfm/test/spec.txt:choice of HTML for the tests makes it possible to run the tests against lib/cmark/ext/cmark-gfm/test/spec.txt:First, some definitions. A [delimiter run](@) is either lib/cmark/ext/cmark-gfm/test/spec.txt:A [left-flanking delimiter run](@) is lib/cmark/ext/cmark-gfm/test/spec.txt:a [delimiter run] that is (1) not followed by [Unicode whitespace], lib/cmark/ext/cmark-gfm/test/spec.txt:A [right-flanking delimiter run](@) is lib/cmark/ext/cmark-gfm/test/spec.txt:a [delimiter run] that is (1) not preceded by [Unicode whitespace], lib/cmark/ext/cmark-gfm/test/spec.txt:Here are some examples of delimiter runs. lib/cmark/ext/cmark-gfm/test/spec.txt:delimiter runs based on the character before and the character lib/cmark/ext/cmark-gfm/test/spec.txt:run," and its rules for distinguishing left- and right-flanking runs lib/cmark/ext/cmark-gfm/test/spec.txt: iff (if and only if) it is part of a [left-flanking delimiter run]. lib/cmark/ext/cmark-gfm/test/spec.txt: it is part of a [left-flanking delimiter run] lib/cmark/ext/cmark-gfm/test/spec.txt: and either (a) not part of a [right-flanking delimiter run] lib/cmark/ext/cmark-gfm/test/spec.txt: or (b) part of a [right-flanking delimiter run] lib/cmark/ext/cmark-gfm/test/spec.txt: iff it is part of a [right-flanking delimiter run]. lib/cmark/ext/cmark-gfm/test/spec.txt: it is part of a [right-flanking delimiter run] lib/cmark/ext/cmark-gfm/test/spec.txt: and either (a) not part of a [left-flanking delimiter run] lib/cmark/ext/cmark-gfm/test/spec.txt: or (b) part of a [left-flanking delimiter run] lib/cmark/ext/cmark-gfm/test/spec.txt: iff it is part of a [left-flanking delimiter run]. lib/cmark/ext/cmark-gfm/test/spec.txt: it is part of a [left-flanking delimiter run] lib/cmark/ext/cmark-gfm/test/spec.txt: and either (a) not part of a [right-flanking delimiter run] lib/cmark/ext/cmark-gfm/test/spec.txt: or (b) part of a [right-flanking delimiter run] lib/cmark/ext/cmark-gfm/test/spec.txt: iff it is part of a [right-flanking delimiter run]. lib/cmark/ext/cmark-gfm/test/spec.txt: it is part of a [right-flanking delimiter run] lib/cmark/ext/cmark-gfm/test/spec.txt: and either (a) not part of a [left-flanking delimiter run] lib/cmark/ext/cmark-gfm/test/spec.txt: or (b) part of a [left-flanking delimiter run] lib/cmark/ext/cmark-gfm/test/spec.txt: [delimiter runs]. If one of the delimiters can both lib/cmark/ext/cmark-gfm/test/spec.txt: delimiter runs containing the opening and closing delimiters lib/cmark/ext/cmark-gfm/test/spec.txt: [delimiter runs]. If one of the delimiters can both open lib/cmark/ext/cmark-gfm/test/spec.txt: the delimiter runs containing the opening and closing lib/cmark/ext/cmark-gfm/test/spec.txt:whitespace, and hence not part of a [left-flanking delimiter run]: lib/cmark/ext/cmark-gfm/test/spec.txt:not part of a [left-flanking delimiter run]: lib/cmark/ext/cmark-gfm/test/spec.txt:Here `_` does not generate emphasis, because the first delimiter run lib/cmark/ext/cmark-gfm/test/spec.txt:(hence it is not part of a [right-flanking delimiter run]: lib/cmark/ext/cmark-gfm/test/spec.txt:not part of a [left-flanking delimiter run]: lib/cmark/ext/cmark-gfm/test/spec.txt:the delimiter runs containing the opening and lib/cmark/ext/cmark-gfm/test/spec.txt:delimiter runs are *both* multiples of 3, though, lib/cmark/ext/cmark-gfm/test/spec.txt:- a run of `*` or `_` characters, or lib/cmark/ext/cmark-gfm/test/spec.txt: * We run *process emphasis* on these inlines, with the `[` opener lib/cmark/ext/cmark-gfm/test/spec.txt:type (`*`, `_`) and each length of the closing delimiter run lib/cmark/ext/cmark-gfm/test/spec.txt:Then we repeat the following until we run out of potential lib/cmark/ext/cmark-gfm/test/extensions.txt:than the header are truncated. lib/cmark/ext/cmark-gfm/.github/workflows/ci.yml: runs-on: ubuntu-latest lib/cmark/ext/cmark-gfm/.github/workflows/ci.yml: run: | lib/cmark/ext/cmark-gfm/.github/workflows/ci.yml: run: | lib/cmark/ext/cmark-gfm/.github/workflows/ci.yml: runs-on: macOS-latest lib/cmark/ext/cmark-gfm/.github/workflows/ci.yml: run: | lib/cmark/ext/cmark-gfm/.github/workflows/ci.yml: runs-on: windows-latest lib/cmark/ext/cmark-gfm/.github/workflows/ci.yml: run: | lib/cmark/ext/cmark-gfm/api_test/cplusplus.h:void test_cplusplus(test_batch_runner *runner); lib/cmark/ext/cmark-gfm/api_test/harness.c:test_batch_runner *test_batch_runner_new() { lib/cmark/ext/cmark-gfm/api_test/harness.c: return (test_batch_runner *)calloc(1, sizeof(test_batch_runner)); lib/cmark/ext/cmark-gfm/api_test/harness.c:static void test_result(test_batch_runner *runner, int cond, const char *msg, lib/cmark/ext/cmark-gfm/api_test/harness.c: ++runner->test_num; lib/cmark/ext/cmark-gfm/api_test/harness.c: ++runner->num_passed; lib/cmark/ext/cmark-gfm/api_test/harness.c: fprintf(stderr, "FAILED test %d: ", runner->test_num); lib/cmark/ext/cmark-gfm/api_test/harness.c: ++runner->num_failed; lib/cmark/ext/cmark-gfm/api_test/harness.c:void SKIP(test_batch_runner *runner, int num_tests) { lib/cmark/ext/cmark-gfm/api_test/harness.c: runner->test_num += num_tests; lib/cmark/ext/cmark-gfm/api_test/harness.c: runner->num_skipped += num_tests; lib/cmark/ext/cmark-gfm/api_test/harness.c:void OK(test_batch_runner *runner, int cond, const char *msg, ...) { lib/cmark/ext/cmark-gfm/api_test/harness.c: test_result(runner, cond, msg, ap); lib/cmark/ext/cmark-gfm/api_test/harness.c:void INT_EQ(test_batch_runner *runner, int got, int expected, const char *msg, lib/cmark/ext/cmark-gfm/api_test/harness.c: test_result(runner, cond, msg, ap); lib/cmark/ext/cmark-gfm/api_test/harness.c:void STR_EQ(test_batch_runner *runner, const char *got, const char *expected, lib/cmark/ext/cmark-gfm/api_test/harness.c: test_result(runner, cond, msg, ap); lib/cmark/ext/cmark-gfm/api_test/harness.c:int test_ok(test_batch_runner *runner) { return runner->num_failed == 0; } lib/cmark/ext/cmark-gfm/api_test/harness.c:void test_print_summary(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/harness.c: int num_passed = runner->num_passed; lib/cmark/ext/cmark-gfm/api_test/harness.c: int num_skipped = runner->num_skipped; lib/cmark/ext/cmark-gfm/api_test/harness.c: int num_failed = runner->num_failed; lib/cmark/ext/cmark-gfm/api_test/harness.c: if (test_ok(runner)) { lib/cmark/ext/cmark-gfm/api_test/harness.h:} test_batch_runner; lib/cmark/ext/cmark-gfm/api_test/harness.h:test_batch_runner *test_batch_runner_new(); lib/cmark/ext/cmark-gfm/api_test/harness.h:void SKIP(test_batch_runner *runner, int num_tests); lib/cmark/ext/cmark-gfm/api_test/harness.h:void OK(test_batch_runner *runner, int cond, const char *msg, ...); lib/cmark/ext/cmark-gfm/api_test/harness.h:void INT_EQ(test_batch_runner *runner, int got, int expected, const char *msg, lib/cmark/ext/cmark-gfm/api_test/harness.h:void STR_EQ(test_batch_runner *runner, const char *got, const char *expected, lib/cmark/ext/cmark-gfm/api_test/harness.h:int test_ok(test_batch_runner *runner); lib/cmark/ext/cmark-gfm/api_test/harness.h:void test_print_summary(test_batch_runner *runner); lib/cmark/ext/cmark-gfm/api_test/main.c:static void test_md_to_html(test_batch_runner *runner, const char *markdown, lib/cmark/ext/cmark-gfm/api_test/main.c:static void test_content(test_batch_runner *runner, cmark_node_type type, lib/cmark/ext/cmark-gfm/api_test/main.c:static void test_char(test_batch_runner *runner, int valid, const char *utf8, lib/cmark/ext/cmark-gfm/api_test/main.c:static void test_incomplete_char(test_batch_runner *runner, const char *utf8, lib/cmark/ext/cmark-gfm/api_test/main.c:static void test_continuation_byte(test_batch_runner *runner, const char *utf8); lib/cmark/ext/cmark-gfm/api_test/main.c:static void version(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_version(), CMARK_GFM_VERSION, "cmark_version"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, cmark_version_string(), CMARK_GFM_VERSION_STRING, lib/cmark/ext/cmark-gfm/api_test/main.c:static void constructor(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, node != NULL, "new type %d", type); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_type(node), type, "get_type %d", type); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_heading_level(node), 1, lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_type(node), CMARK_BULLET_LIST, lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_delim(node), CMARK_NO_DELIM, lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_start(node), 0, lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_tight(node), 0, lib/cmark/ext/cmark-gfm/api_test/main.c:static void accessors(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_heading_level(heading), 2, "get_heading_level"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_type(bullet_list), CMARK_BULLET_LIST, lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_tight(bullet_list), 1, lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_type(ordered_list), CMARK_ORDERED_LIST, lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_delim(ordered_list), CMARK_PERIOD_DELIM, lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_start(ordered_list), 2, "get_list_start"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_tight(ordered_list), 0, lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, cmark_node_get_literal(fenced), "fenced\n", lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, cmark_node_get_fence_info(fenced), "lang", "get_fence_info"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, cmark_node_get_literal(code), "code\n", lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, cmark_node_get_literal(html), "
html
\n", lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_start_line(paragraph), 17, "get_start_line"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_start_column(paragraph), 1, "get_start_column"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_end_line(paragraph), 17, "get_end_line"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, cmark_node_get_url(link), "url", "get_url"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, cmark_node_get_title(link), "title", "get_title"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, cmark_node_get_literal(string), "link", "get_literal string"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_heading_level(heading, 3), "set_heading_level"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_list_type(bullet_list, CMARK_ORDERED_LIST), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_list_delim(bullet_list, CMARK_PAREN_DELIM), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_list_start(bullet_list, 3), "set_list_start"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_list_tight(bullet_list, 0), "set_list_tight loose"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_list_type(ordered_list, CMARK_BULLET_LIST), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_list_tight(ordered_list, 1), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_literal(code, "CODE\n"), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_literal(fenced, "FENCED\n"), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_fence_info(fenced, "LANG"), "set_fence_info"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_literal(html, "
HTML
\n"), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_url(link, "URL"), "set_url"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_title(link, "TITLE"), "set_title"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_literal(string, "prefix-LINK"), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_literal(string, literal + sizeof("prefix")), lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, rendered_html, expected_html, "setters work"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_heading_level(bullet_list), 0, lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_type(heading), CMARK_NO_LIST, lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_start(code), 0, "get_list_start error"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_get_list_tight(fenced), 0, "get_list_tight error"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_get_literal(ordered_list) == NULL, "get_literal error"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_get_fence_info(paragraph) == NULL, lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_get_url(html) == NULL, "get_url error"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_get_title(heading) == NULL, "get_title error"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_set_heading_level(bullet_list, 3), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_set_list_type(heading, CMARK_ORDERED_LIST), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_set_list_start(code, 3), "set_list_start error"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_set_list_tight(fenced, 0), "set_list_tight error"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_set_literal(ordered_list, "content\n"), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_set_fence_info(paragraph, "lang"), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_set_url(html, "url"), "set_url error"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_set_title(heading, "title"), "set_title error"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_set_heading_level(heading, 0), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_set_heading_level(heading, 7), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_set_list_type(bullet_list, CMARK_NO_LIST), lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_set_list_start(bullet_list, -1), lib/cmark/ext/cmark-gfm/api_test/main.c:static void node_check(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_check(doc, NULL), 4, "node_check works"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_check(doc, NULL), 0, "node_check fixes tree"); lib/cmark/ext/cmark-gfm/api_test/main.c:static void iterator(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, parnodes, 2, "iterate correctly counts paragraphs"); lib/cmark/ext/cmark-gfm/api_test/main.c:static void iterator_delete(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, expected, "iterate and delete nodes"); lib/cmark/ext/cmark-gfm/api_test/main.c:static void create_tree(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_insert_before(doc, p), "insert before root fails"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, !cmark_node_insert_after(doc, p), "insert after root fails"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_append_child(doc, p), "append1"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_check(doc, NULL), 0, "append1 consistent"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_parent(p) == doc, "node_parent"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_prepend_child(p, emph), "prepend1"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_check(doc, NULL), 0, "prepend1 consistent"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_prepend_child(p, str1), "prepend2"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_check(doc, NULL), 0, "prepend2 consistent"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_append_child(p, str3), "append2"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_check(doc, NULL), 0, "append2 consistent"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_append_child(emph, str2), "append3"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_check(doc, NULL), 0, "append3 consistent"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "

Hello, world!

\n", "render_html"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_insert_before(str1, str3), "ins before1"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_check(doc, NULL), 0, "ins before1 consistent"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_first_child(p) == str3, "ins before1 works"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_insert_before(str1, emph), "ins before2"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_check(doc, NULL), 0, "ins before2 consistent"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_last_child(p) == str1, "ins before2 works"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_insert_after(str1, str3), "ins after1"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_check(doc, NULL), 0, "ins after1 consistent"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_next(str1) == str3, "ins after1 works"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_insert_after(str1, emph), "ins after2"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_check(doc, NULL), 0, "ins after2 consistent"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_previous(emph) == str1, "ins after2 works"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_replace(str1, str4), "replace"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_check(doc, NULL), 0, "replace consistent"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_previous(emph) == str4, "replace works"); lib/cmark/ext/cmark-gfm/api_test/main.c: INT_EQ(runner, cmark_node_replace(p, str4), 0, "replace str for p fails"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "

brzz!

\n", "render_html after shuffling"); lib/cmark/ext/cmark-gfm/api_test/main.c:static void custom_nodes(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_append_child(ci, str1), "append1"); lib/cmark/ext/cmark-gfm/api_test/main.c: OK(runner, cmark_node_set_on_enter(ci, ""), "set_on_exit"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, cmark_node_get_on_enter(ci), "", "get_on_exit"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, cmark_node_get_on_exit(cb), "", "get_on_exit (empty)"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "

\n\nNo newline

\n", lib/cmark/ext/cmark-gfm/api_test/main.c:static void render_html(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "

foo bar

\n", "render single paragraph"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "foo ", "render single inline"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "bar", "render inline with children"); lib/cmark/ext/cmark-gfm/api_test/main.c:static void render_xml(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, xml, "\n" lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, xml, "\n" lib/cmark/ext/cmark-gfm/api_test/main.c:static void render_man(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, man, ".PP\n" lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, man, ".PP\n" lib/cmark/ext/cmark-gfm/api_test/main.c:static void render_latex(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, latex, "foo \\emph{bar} \\$\\%\n" lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, latex, "foo \\emph{bar} \\$\\%\n" lib/cmark/ext/cmark-gfm/api_test/main.c:static void render_commonmark(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, commonmark, "> \\- foo *bar* \\*bar\\*\n" lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, commonmark, "> \\- foo *bar* \\*bar\\*\n" lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, commonmark, "Hi\n", "render single inline node"); lib/cmark/ext/cmark-gfm/api_test/main.c:static void render_plaintext(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, plaintext, "- foo bar *bar*\n" lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, plaintext, "- foo bar *bar*\n" lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, plaintext, "Hi\n", "render single inline node"); lib/cmark/ext/cmark-gfm/api_test/main.c:static void utf8(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 1, "\x01", "valid utf8 01"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 1, "\x7F", "valid utf8 7F"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\x80", "invalid utf8 80"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xBF", "invalid utf8 BF"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xC0\x80", "invalid utf8 C080"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xC1\xBF", "invalid utf8 C1BF"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 1, "\xC2\x80", "valid utf8 C280"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 1, "\xDF\xBF", "valid utf8 DFBF"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xE0\x80\x80", "invalid utf8 E08080"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xE0\x9F\xBF", "invalid utf8 E09FBF"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 1, "\xE0\xA0\x80", "valid utf8 E0A080"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 1, "\xED\x9F\xBF", "valid utf8 ED9FBF"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xED\xA0\x80", "invalid utf8 EDA080"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xED\xBF\xBF", "invalid utf8 EDBFBF"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xF0\x80\x80\x80", "invalid utf8 F0808080"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xF0\x8F\xBF\xBF", "invalid utf8 F08FBFBF"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 1, "\xF0\x90\x80\x80", "valid utf8 F0908080"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 1, "\xF4\x8F\xBF\xBF", "valid utf8 F48FBFBF"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xF4\x90\x80\x80", "invalid utf8 F4908080"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xF7\xBF\xBF\xBF", "invalid utf8 F7BFBFBF"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xF8", "invalid utf8 F8"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_char(runner, 0, "\xFF", "invalid utf8 FF"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_incomplete_char(runner, "\xE0\xA0", "invalid utf8 E0A0"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_incomplete_char(runner, "\xF0\x90\x80", "invalid utf8 F09080"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_continuation_byte(runner, "\xC2\x80"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_continuation_byte(runner, "\xE0\xA0\x80"); lib/cmark/ext/cmark-gfm/api_test/main.c: test_continuation_byte(runner, "\xF0\x90\x80\x80"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "

((((" UTF8_REPL "))))

\n", "utf8 with U+0000"); lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "
\xef\xbf\xbd\n
\n", lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "

Hello

\n", "utf8 with BOM"); lib/cmark/ext/cmark-gfm/api_test/main.c:static void test_char(test_batch_runner *runner, int valid, const char *utf8, lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, buf, expected, msg); lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, buf, "

((((" UTF8_REPL "))))

\n", msg); lib/cmark/ext/cmark-gfm/api_test/main.c:static void test_incomplete_char(test_batch_runner *runner, const char *utf8, lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, buf, "

----" UTF8_REPL "

\n", msg); lib/cmark/ext/cmark-gfm/api_test/main.c:static void test_continuation_byte(test_batch_runner *runner, lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, expected, "invalid utf8 continuation byte %d/%d", pos, lib/cmark/ext/cmark-gfm/api_test/main.c:static void line_endings(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "

line
\nline

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "

line line

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "
line\n
\n", lib/cmark/ext/cmark-gfm/api_test/main.c:static void numeric_entities(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "�", "

" UTF8_REPL "

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "퟿", "

\xED\x9F\xBF

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "�", "

" UTF8_REPL "

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "�", "

" UTF8_REPL "

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "", "

\xEE\x80\x80

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "􏿿", "

\xF4\x8F\xBF\xBF

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "�", "

" UTF8_REPL "

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "�", "

" UTF8_REPL "

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "�", "

" UTF8_REPL "

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "�", "

" UTF8_REPL "

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "&#;", "

&#;

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "&#x;", "

&#x;

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "�", "

�

\n", lib/cmark/ext/cmark-gfm/api_test/main.c: test_md_to_html(runner, "A", "

A

\n", lib/cmark/ext/cmark-gfm/api_test/main.c:static void test_safe(test_batch_runner *runner) { lib/cmark/ext/cmark-gfm/api_test/main.c: STR_EQ(runner, html, "\n