Commit Graph

14 Commits

Author SHA1 Message Date
Yorick Peterse d69dff5b4b Removed benchmark suite and its documentation
The rationale for this can be found in
https://gitlab.com/gitlab-org/gitlab-ce/issues/13718 but in short the
benchmark suite no longer serves a good purpose now that we have proper
production monitoring in place.

Fixes gitlab-org/gitlab-ce#13718
2016-03-10 11:15:43 +01:00
Douwe Maan 6c6fb1d8bb Split up spec:other even more 2015-12-09 11:56:23 +01:00
Douwe Maan 7a5e77c0a0 Fix rspec tag syntax 2015-12-09 11:09:25 +01:00
Douwe Maan ae0b901731 Split up specs more 2015-12-09 10:51:01 +01:00
Yorick Peterse 8a78c4ea06 Exclude benchmarks from the spec Rake task 2015-10-05 18:01:28 +02:00
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
Dmitriy Zaporozhets 12e0998635 Refactor rake tasks for tests 2015-06-23 16:48:52 +02:00
Dmitriy Zaporozhets 1e7fa8d99b
Fix syntax error
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-05-27 08:12:03 +03:00
Dmitriy Zaporozhets e426d43924
Check return system value for gitlab test rake tasks
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-05-26 21:54:57 +03:00
Jeroen van Baarsen 8362026a33 Split feature tests out to different build job 2014-04-13 19:05:52 +02:00
Jeroen van Baarsen 5dd2f36ae1 Added API testing group 2014-04-11 21:45:56 +02:00
Jeroen van Baarsen 25eadf0c5b Proposal for split testing 2014-04-11 13:37:33 +02:00
Dmitriy Zaporozhets fa3c087a4c
Clear rake task only if defined
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-03-14 14:23:28 +02:00
Dmitriy Zaporozhets f6f80659ec
Override rake spec and rake spinach tasks
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2014-03-14 10:44:16 +02:00