ruby-mdbx/spec/mdbx/stats_spec.rb
mahlon@martini.nu c0cd35e260 Multiple changes.
- Complete first round of documentation.
  - Complete first round of tests and coverage.
  - Expand the thread benchmarker for testing metasync.
  - Add enumerators (each_key/each_value/each_pair) using cursors.
  - Remove keys() implementation in favor of using the emumerable.
  - Make deserialization more DRY.
  - Add an efficient length() method.
  - Add various Hash-alike methods.
  - General code cleanup for release.

FossilOrigin-Name: 0d2bd3995f203c9ac1734ac3da32dd2f09efda9a394e554e6006e44dd07a33b0
2021-03-14 23:19:41 +00:00

41 lines
1.1 KiB
Ruby

#!/usr/bin/env rspec -cfd
# vim: set nosta noet ts=4 sw=4 ft=ruby:
require_relative '../lib/helper'
RSpec.describe( MDBX::Database ) do
let!( :db ) { described_class.open( TEST_DATABASE.to_s, max_readers: 500 ) }
let( :stats ) { db.statistics }
after( :each ) do
db.close
end
it "returns the configured max_readers" do
expect( stats.dig(:environment, :max_readers) ).to be >= 500
end
it "returns compile time flags and options" do
build = stats[ :build ]
expect( build.keys.size ).to be( 4 )
expect( build.keys ).to include( :compiler, :flags, :options, :target )
expect( build[:compiler] ).to be_a( String )
expect( build[:flags] ).to be_a( String )
expect( build[:target] ).to be_a( String )
expect( build[:options] ).to be_a( Hash )
end
it "returns readers in use" do
readers = stats[ :readers ]
expect( stats.dig(:environment, :readers_in_use) ).to eq( readers.size )
expect( readers.first[:pid] ).to eq( $$ )
end
it "returns datafile attributes" do
expect( stats.dig(:environment, :datafile, :type) ).to eq( "dynamic" )
end
end