diff options
author | Jay Mundrawala <jdmundrawala@gmail.com> | 2015-07-17 15:29:06 -0500 |
---|---|---|
committer | Jay Mundrawala <jdmundrawala@gmail.com> | 2015-07-17 15:29:06 -0500 |
commit | 5178ece7bb792cc87c49493e50f62e4a8a6d8d86 (patch) | |
tree | a10defbd3ecfd3b8357dddba9bde89c4e1113b9d | |
parent | 219c7e1a54d283118ae7f1f12966c61e9bbd06b1 (diff) | |
download | chef-jdm/json-nested-test.tar.gz |
Rewrite nested json test to not use stackjdm/json-nested-test
Freebsd 10.1 i386 testers keep getting:
```
/opt/chef/embedded/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1327:in `load': stack level too deep (SystemStackError)
from /opt/chef/embedded/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1327:in `block in load_spec_files'
from /opt/chef/embedded/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1325:in `each'
from /opt/chef/embedded/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1325:in `load_spec_files'
from /opt/chef/embedded/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:102:in `setup'
from /opt/chef/embedded/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:88:in `run'
from /opt/chef/embedded/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:73:in `run'
from /opt/chef/embedded/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:41:in `invoke'
from /opt/chef/embedded/lib/ruby/gems/2.2.0/gems/rspec-core-3.3.2/exe/rspec:4:in `<top (required)>'
from /opt/chef/embedded/bin/rspec:23:in `load'
from /opt/chef/embedded/bin/rspec:23:in `<main>'
```
We seem to keep changing the depth of the json object. Instead, let's
just not do it on the stack.
-rw-r--r-- | spec/unit/json_compat_spec.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/spec/unit/json_compat_spec.rb b/spec/unit/json_compat_spec.rb index aaf0c48806..fd6469c146 100644 --- a/spec/unit/json_compat_spec.rb +++ b/spec/unit/json_compat_spec.rb @@ -72,8 +72,6 @@ describe Chef::JSONCompat do end end - # On FreeBSD 10.1 i386 rspec fails with a SystemStackError loading the expect line with more that 252 entries - # https://github.com/chef/chef/issues/3101 describe "with the file with 252 or less nested entries" do let(:json) { IO.read(File.join(CHEF_SPEC_DATA, 'nested.json')) } let(:hash) { Chef::JSONCompat.from_json(json) } @@ -84,7 +82,10 @@ describe Chef::JSONCompat do end it "should has 'test' as a 252 nested value" do - expect(hash['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']['key']).to eq('test') + v = 252.times.inject(hash) do |memo, _| + memo['key'] + end + expect(v).to eq('test') end end end |