gitlab-org--gitlab-foss/lib
Yorick Peterse 19893a1c10 Basic setup for an RSpec based benchmark suite
This benchmark suite uses benchmark-ips
(https://github.com/evanphx/benchmark-ips) behind the scenes. Specs can
be turned into benchmark specs by setting "benchmark" to "true" in the
top-level describe block like so:

    describe SomeClass, benchmark: true do

    end

Writing benchmarks can be done using custom RSpec matchers, for example:

    describe MaruTheCat, benchmark: true do
      describe '#jump_in_box' do
        it 'should run 1000 iterations per second' do
          maru = described_class.new

          expect { maru.jump_in_box }.to iterate_per_second(1000)
        end
      end
    end

By default the "iterate_per_second" expectation requires a standard
deviation under 30% (this is just an arbitrary default for now). You can
change this by chaining "with_maximum_stddev" on the expectation:

    expect { maru.jump_in_box }.to iterate_per_second(1000)
      .with_maximum_stddev(10)

This will change the expectation to require a maximum deviation of 10%.

Alternatively you can use the it block style to write specs:

    describe MaruTheCat, benchmark: true do
      describe '#jump_in_box' do
        subject { -> { described_class.new } }

        it { is_expected.to iterate_per_second(1000) }
      end
    end

Because "iterate_per_second" operates on a block, opposed to a static
value, the "subject" method must return a Proc. This looks a bit goofy
but I have been unable to find a nice way around this.
2015-10-02 17:00:23 +02:00
..
api api: add enable_ssl_verification to PUT/POST hooks 2015-09-24 12:34:16 -04:00
assets
backup Add support for AWS S3 Server-Side Encryption support 2015-09-25 17:06:31 +01:00
ci Delegate ci_project parameters to projects 2015-09-30 12:48:40 +02:00
gitlab Merge branch 'show-diff-stats-for-mr' 2015-10-01 17:02:53 +02:00
omni_auth Add reset_session for the :reset_session strategy. 2015-04-24 20:10:32 +02:00
rouge/formatters Fix diff syntax highlighting 2015-08-10 08:07:26 -07:00
support Add missing rake and change nginx config for CI migration 2015-09-22 09:45:52 +02:00
tasks Basic setup for an RSpec based benchmark suite 2015-10-02 17:00:23 +02:00
disable_email_interceptor.rb
email_validator.rb
event_filter.rb
extracts_path.rb Fix "Network" and "Graphs" pages for branches with encoded slashes 2015-08-02 00:07:23 -07:00
file_size_validator.rb Support configurable attachment size via Application Settings 2015-04-02 00:04:08 -07:00
gitlab.rb Revert "Merge branch 'revert-satellites' into 'master' " 2015-08-11 14:33:31 +02:00
gt_one_coercion.rb
repository_cache.rb Store commit count in project table 2015-07-17 15:22:56 +02:00
static_model.rb Fixed styles, ProjectHook specs etc 2013-01-05 00:35:38 +02:00
unfold_form.rb Gitlab Issue 707: Indent unfolded code 1 character 2015-07-22 09:58:17 -04:00
version_check.rb Replace host with real one 2015-05-11 18:21:45 +03:00