According to the output by `tmt --help`, the `tmt tests` is an official command
name.
```
$ tmt --version
tmt version: 1.38.0
$ tmt --help
...
Commands:
...
tests Manage tests (L1 metadata).
...
```
This prevents `bundle install` failures like:
~~~
:: [ 00:30:49 ] :: [ BEGIN ] :: Creating new rails application :: actually running 'rails new app | tee bundle.log'
create
create README.md
... snip ...
Fetching rails 7.0.8.6
Installing rails 7.0.8.6
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /usr/local/share/gems/gems/psych-5.2.0/ext/psych
/usr/bin/ruby -I/usr/share/rubygems extconf.rb
checking for pkg-config for yaml-0.1... not found
checking for yaml.h... no
yaml.h not found
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include=${opt-dir}/include
--without-opt-include
--with-opt-lib=${opt-dir}/lib64
--without-opt-lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/$(RUBY_BASE_NAME)
--with-libyaml-source-dir
--without-libyaml-source-dir
--with-yaml-0.1-dir
--without-yaml-0.1-dir
--with-yaml-0.1-include=${yaml-0.1-dir}/include
--without-yaml-0.1-include
--with-yaml-0.1-lib=${yaml-0.1-dir}/lib64
--without-yaml-0.1-lib
--with-yaml-0.1-config
--without-yaml-0.1-config
--with-pkg-config
--without-pkg-config
--with-libyaml-dir
--without-libyaml-dir
--with-libyaml-include=${libyaml-dir}/include
--without-libyaml-include
--with-libyaml-lib=${libyaml-dir}/lib64
--without-libyaml-lib
To see why this extension failed to compile, please check the mkmf.log which can
be found here:
/usr/local/lib64/gems/ruby/psych-5.2.0/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /usr/local/share/gems/gems/psych-5.2.0 for
inspection.
Results logged to /usr/local/lib64/gems/ruby/psych-5.2.0/gem_make.out
/usr/share/rubygems/rubygems/ext/builder.rb:125:in `run'
/usr/share/rubygems/rubygems/ext/ext_conf_builder.rb:28:in `build'
/usr/share/rubygems/rubygems/ext/builder.rb:193:in `build_extension'
/usr/share/rubygems/rubygems/ext/builder.rb:227:in `block in build_extensions'
/usr/share/rubygems/rubygems/ext/builder.rb:224:in `each'
/usr/share/rubygems/rubygems/ext/builder.rb:224:in `build_extensions'
/usr/share/rubygems/rubygems/installer.rb:844:in `build_extensions'
/usr/share/gems/gems/bundler-2.5.22/lib/bundler/rubygems_gem_installer.rb:109:in
`build_extensions'
/usr/share/gems/gems/bundler-2.5.22/lib/bundler/rubygems_gem_installer.rb:28:in
`install'
/usr/share/gems/gems/bundler-2.5.22/lib/bundler/source/rubygems.rb:205:in
`install'
/usr/share/gems/gems/bundler-2.5.22/lib/bundler/installer/gem_installer.rb:55:in
`install'
/usr/share/gems/gems/bundler-2.5.22/lib/bundler/installer/gem_installer.rb:17:in
`install_from_spec'
/usr/share/gems/gems/bundler-2.5.22/lib/bundler/installer/parallel_installer.rb:133:in
`do_install'
/usr/share/gems/gems/bundler-2.5.22/lib/bundler/installer/parallel_installer.rb:124:in
`block in worker_pool'
/usr/share/gems/gems/bundler-2.5.22/lib/bundler/worker.rb:62:in `apply_func'
/usr/share/gems/gems/bundler-2.5.22/lib/bundler/worker.rb:57:in `block in
process_queue'
<internal:kernel>:187:in `loop'
/usr/share/gems/gems/bundler-2.5.22/lib/bundler/worker.rb:54:in
`process_queue'
/usr/share/gems/gems/bundler-2.5.22/lib/bundler/worker.rb:90:in `block (2
levels) in create_threads'
An error occurred while installing psych (5.2.0), and Bundler cannot continue.
In Gemfile:
debug was resolved to 1.9.2, which depends on
irb was resolved to 1.14.1, which depends on
rdoc was resolved to 6.7.0, which depends on
psych
run bundle binstubs bundler
Resolving dependencies...
rails importmap:install
... snip ...
~~~
Please note that this error happens only when Fedora ships older version
of Psych then the version available on RubyGems, so the libyaml-devel
might not be always needed.
There are also other possibilities to workaround the issue, such as:
* Excluding `development` and `test` groups from installation to avoid
the `debug` gem dependency chain.
* Using `--skip-bundle` option and modifying the Gemfile generated
for the Ruby on Rails app.
However, I believe that this is the most probable action our users would
take.
Also note that while there are installed other binary gems, such as
Nokogiri, those ships prebuild binaries. If Psych decides to do the same
in the future, the `libyaml-devel` might become redundant.
* Update the plan /plans/modified to run in CI. See the following link for the
condition `trigger == commit`.
https://tmt.readthedocs.io/en/stable/spec/context.html#trigger
* Add the plan /plans/all to run all the tests. The plan is not executed in CI
as a default. Don't trigger this plan in CI to save the infra resource and
the running time.
Note we don't describe the triggered environment such as local or CI in the
`summary` element in the plan /plans/all of the `plans.fmf`. Because this
plan is executed as a default, and users can override the triggered
environment by running the `tmt` with `trigger` option, such as
`tmt -c trigger=commit`. We don't want to give users the impression that the
plan only works in a specific running environment.
* Update the `README.md` removing the parts of the `plans --default` option in
the `tmt run` commands that are not needed due to the plan /plans/all.
Co-authored-by: Lukáš Zachar <lzachar@redhat.com>
* Add Contributing section including Testing sub section.
* Change the repository name's heading level.
Replace the heading level 2 syntax ("--") with the more popular heading level
1 syntax.
See <https://www.markdownguide.org/basic-syntax/> for details.
While require on file in rpm works now, with dnf-5 it might not work out
of the box. Let's keep adding package which contains this file in the
require/recommend instead
Extend stap buffer size and limit "noise" produced by ruby interpreter
so stap output is more usable.
This patch fixes the execution of the test for Fedora. It also
includes improved waiting for stap, which uses now active waiting
instead of static sleep.
Signed-off-by: Miroslav Vadkerti <mvadkert@redhat.com>
This patch adds various fixes to the test case, so it can be executed on
Fedora.
Also fixes obvious issues with quoting in if statements.
Signed-off-by: Miroslav Vadkerti <mvadkert@redhat.com>
systemtap-static-probes-in-ruby: for testing ruby's systemtap api
bundler-unit-tests: to run bundler's unit tests
run-basic-rails-application: a simple rails application test
Signed-off-by: Miroslav Vadkerti <mvadkert@redhat.com>