Commit graph

6465 commits

Author SHA1 Message Date
Ryan Davis
9b7c292d4c Use IO globals instead of IO constants.
Helps testing and lots of other things if we only use $stdout/$stderr.

STDOUT/STDERR should only be used to restore the globals.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-18 12:48:18 -07:00
Ryan Davis
40d74cb5be Turn off logging after the configure_logger tests.
Please do not increase the amount of noise our tests have from here on out.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-18 12:48:18 -07:00
Dan Mirsky
1e20e2998e Fix github tree url regex. Add period for repo
Signed-off-by: Dan Mirsky <mirskiy@gmail.com>
2019-05-18 10:50:39 -07:00
Miah Johnson
a3c55ea49f We didn't need a Set!
Update this based on feedback from @zenspider

Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-18 00:00:59 -07:00
Miah Johnson
2181b9a76b Ensure AwsResourceMixin returns a resource name
`@__resource_name` may be nil, so return our resource name via
`self.class.to_s`. This isn't perfect, is there something better to use
here?

.[2019-05-17T20:14:37-07:00] WARN: DEPRECATION: AWS resources shipped with core InSpec are being to moved to a resource pack for faster iteration. Please update your profiles to depend on git@github.com:inspec/inspec-aws.git . Resource 'AwsElbs'

AwsElbs? This is the `aws_elbs` resource, this is not user-friendly. :(

Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-17 20:15:21 -07:00
Chef Expeditor
a0f9487f9d
Bump version to 4.4.31 by Chef Expeditor
Obvious fix; these changes are the result of automation not creative thinking.
2019-05-18 00:55:15 +00:00
Miah Johnson
ff285b391d
Merge pull request #4101 from inspec/mj/key
Use #key? rather than #has_key? in profile_name ternary
2019-05-17 17:54:59 -07:00
Miah Johnson
3db8d93fe5 Use #key? rather than #has_key? in profile_name ternary
lib/inspec/profile_context.rb:28:29: C: [Corrected] Style/PreferredHashMethods: Use Hash#key? instead of Hash#has_key?.
      @profile_name = @conf.has_key?('profile') ? @conf['profile'].profile_name : @profile_id
                            ^^^^^^^^

355 files inspected, 1 offense detected, 1 offense corrected

Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-17 16:39:14 -07:00
Chef Expeditor
40ef08183b
Bump version to 4.4.30 by Chef Expeditor
Obvious fix; these changes are the result of automation not creative thinking.
2019-05-17 22:21:51 +00:00
Miah Johnson
ee899d694f
Merge pull request #4081 from inspec/mj/profile_context
Fix @profile_name not initialized
2019-05-17 15:21:38 -07:00
Chef Expeditor
b51608e629
Bump version to 4.4.29 by Chef Expeditor
Obvious fix; these changes are the result of automation not creative thinking.
2019-05-17 22:20:59 +00:00
Miah Johnson
0e896221e5
Merge pull request #4083 from inspec/mj/circular-telemetry
Fix circular require in telemetry
2019-05-17 15:20:43 -07:00
Chef Expeditor
a4f039adff
Bump version to 4.4.28 by Chef Expeditor
Obvious fix; these changes are the result of automation not creative thinking.
2019-05-17 21:38:26 +00:00
Miah Johnson
ea248d84ac
Merge pull request #4031 from inspec/zenspider/test_cleanup
Fix up sporadically failing tests and ensure tests can run independently
2019-05-17 14:38:10 -07:00
Ryan Davis
e72f3f34aa Skip more_permissive_than? file_test because broken only on CI.
Trying to fix file_test failure that only happens on travis.

The "mock" file in question is supposed to have a stat of 644, but
actually has 664 but only on travis-ci.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 03:19:46 -07:00
Ryan Davis
bc028893e8 Fixed inconsistent use of MT::S's "expect" method (eg _)
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
9b0d8edfb4 Fixed another bad test interaction.
This time between:

+ PluginManagerCliDefinitionTests#(?:test_plugin_registered
+ PluginLoaderTests#test_load_mock_plugin_by_gem

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
3ba7aecffb Skips the one test that hits rspec directly and causes mocha to blow out afterwards
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
ec9121dafe Cleanup long lines for readability / debugging.
Also asked a couple q's in TODO lines.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
1b01aa7a57 Removed all redundant INSPEC_CONFIG_DIR setup from tests.
Pushed up to setup

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
8f3e1a0fe5 Fixes test failure interaction between Loader and Installer tests.
Specifically, if these were run in this order:

+ PluginLoaderTests#test_load_mock_plugin_by_gem
+ PluginInstallerInstallationTests#test_install_a_gem_from_local_file

the latter would fail.

The failure was in test setup. The solution was partially to crib off
of and normalize with LoaderTest setup/teardown and partially to set extra things.

Specifically:

+ HOME wasn't being set so it was finding my ~/.inspec/plugins.json
+ ENV wasn't being reset for Gem.paths
+ Installer wasn't being reset correctly, so plugins were known across tests.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
8ec76e666e Fixed assignment to RUBY_VERSION.
Lost in a sea of deprecation warnings.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
03dd753ad3 Omit user plugins for loader test failure.
Fixes #4053

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
a53d118b3f Punting on 2 tests in inspec-plugin-manager-cli.
These two tests make assumptions that are not valid when bundler is
not being used.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
84fd8af96a Added SLOW=1 env var to run slow installer tests, otherwise skipped
+ Added SLOW=1 to appveyor (I hope?) and travis.
+ Off by default.

Speeds up installer tests from ~5.5 seconds to ~0.5 seconds.

Once this is established, we can push this up to the main helper and
generalize if it works out for us.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
92d8cd4df9 Fixed two test order dependency bugs.
+ Do extra cleanup of loaded_specs for the dependencies.
+ Ensure rake is actually activated.

Fixes #4030.
Fixes #4026.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
4d4e8e1feb Turn off rdoc/ri generation in plugins.
As commented, I'm happy to push this to our tests, but it does seem
odd that we'd install rdoc/ri for plugins.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:07 -07:00
Ryan Davis
e16657883a Fixed referenced urls so we can find the cited code again.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
7935d5553d Fix how we're running inspec to include local lib dir.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
e7348f4d72 Add minitest/hell and parallelize_me! to the plugin tests.
We already do this in test/helper.rb so we might as well do it here.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
0c9644c1c2 Use RbConfig::CONFIG instead of Gem.ruby_version for plugin_gem_path
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
e7426658fd Fixed rake test:isolated task. The glob was far too limited.
Extracted a GLOBS const so it can be reused and only updated in one
place.

Added test:list that prints out all known test files.

Changed test:isolated to use the glob, AND to use system (sh would
fail out on the first failing test, so much of the looping mechanism
was redundant. I also changed the loop to run all of the tests
regardless of outcome, so you can see all the failures.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
35aceeb9ba Fixed rake test:resources task. The path was no longer valid.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
6235c3f658 Fixed missing requires
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
cdf95cd160 Fixed 3 failures in cmp matcher.
+ float? comparison can raise a TypeError
+ octal? comparison was allowing non-octal values (which cast to 0)
+ symbol comparison was casting to a string, but then doing an == check instead of casecmp.

The latter seems optional, but consistent with the intent of cmp.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
b80dfa2cbd Tests for cmp.
Doesn't test any of the aux methods.

This uncovers ~3 errors in the code. Not fixed.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
bc249a78cb Changed cmp matcher to use send.
obj.method(name).call(*args) == obj.send(name, *args)

```
Calculating -------------------------------------
         method+call      2.561M (± 2.2%) i/s -     12.816M in   5.006835s
                send      6.299M (± 2.4%) i/s -     31.501M in   5.004045s

Comparison:
                send:  6299002.5 i/s
         method+call:  2560909.2 i/s - 2.46x  slower
```

There aren't any direct tests for this? But I forcefully failed 2
functionals and then verified they passed after my change.

Not sure how (or if) to write tests against rspec matchers in a
meaningful way, even tho all I really want to test is a plain ole
method in it. I'll poke to see if it is possible / practical.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
06ead63972 Minor cleanup and a todo test.
Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
1ed4128942 Functional helper let changes.
Moved exec_inspec to inspec_path.
Added new exec_inspec that invokes ruby w/ -Ilib (expanded).

Decouples from bundler and/or needing inspec-bin to be installed.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
80cfc419f8 Use Inspec::VERSION directly to decouple from bundler.
Can also try to use the bundler version first and then fall back to
VERSION... but VERSION is absolutely free.

Happy to push an edit to this to remove the comment or fold it in.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Ryan Davis
427d59f13f Fixes loading of Telemetry::DataSeries (and neighbors) in isolation.
Fixes telemetry tests when run individually.

Signed-off-by: Ryan Davis <zenspider@chef.io>
2019-05-17 02:26:06 -07:00
Chef Expeditor
e251ebf22b
Bump version to 4.4.27 by Chef Expeditor
Obvious fix; these changes are the result of automation not creative thinking.
2019-05-16 23:57:46 +00:00
Miah Johnson
a3f4c25922
Merge pull request #4085 from burtlo/fix/init-plugin
Updates the init profile description to show proper usage
2019-05-16 16:57:29 -07:00
Lynn Frank
4511ac6aaf Updates the init plugin desc to show proper usage
Obvious fix.
2019-05-16 16:43:05 -05:00
Chef Expeditor
506cb5a6a2
Bump version to 4.4.26 by Chef Expeditor
Obvious fix; these changes are the result of automation not creative thinking.
2019-05-16 18:45:27 +00:00
Miah Johnson
ef902ced88
Merge pull request #4082 from inspec/mj/fkg
`rubocop -a` on kitchen directory
2019-05-16 11:45:14 -07:00
Miah Johnson
6a60f6137f Don't require telemetry/global_methods to prevent circular require
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-16 00:45:58 -07:00
Miah Johnson
75f071ae48 require telemetry/global_methods
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-16 00:45:24 -07:00
Miah Johnson
e2ccb9ae69 rubocop -a
Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-16 00:29:16 -07:00
Miah Johnson
d70172f96e Fix @profile_name not initialized
I believe that if `@conf['profile']` doesn't exist @profile_name may not
be initialized.

```
inspec-master/lib/inspec/profile_context.rb:35: warning: instance variable @profile_name not initialized
```

Signed-off-by: Miah Johnson <miah@chia-pet.org>
2019-05-16 00:22:27 -07:00