blob: a2d1d8177ffcc9b8beb84f835319a2c64fe2c7e6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
Feature: Compile C code into Ruby extensions.
In order to automate compilation process.
As a Gem developer.
I want rake tasks compile source code for me.
Scenario: Compile single extension
Given a safe project directory
And scaffold code for extension 'extension_one'
And binary extension 'extension_one' do not exist in 'lib'
And 'tmp' folder is deleted
When rake task 'compile' is invoked
And rake task 'compile' succeeded
Then binary extension 'extension_one' do exist in 'lib'
And 'tmp' folder is created
Scenario: Not recompile unmodified extension
Given a safe project directory
And scaffold code for extension 'extension_one'
And binary extension 'extension_one' do exist in 'lib'
When rake task 'compile' is invoked
And rake task 'compile' succeeded
Then output of rake task 'compile' does not match /extension_one/
Scenario: Compile multiple extensions
Given a safe project directory
And scaffold code for extension 'extension_one'
And scaffold code for extension 'extension_two'
And binary extension 'extension_one' do not exist in 'lib'
And binary extension 'extension_two' do not exist in 'lib'
And 'tmp' folder is deleted
When rake task 'compile' is invoked
And rake task 'compile' succeeded
Then binary extension 'extension_one' do exist in 'lib'
And binary extension 'extension_two' do exist in 'lib'
And 'tmp' folder is created
Scenario: Compile one extension instead of all present
Given a safe project directory
And scaffold code for extension 'extension_one'
And scaffold code for extension 'extension_two'
And binary extension 'extension_one' do not exist in 'lib'
And binary extension 'extension_two' do not exist in 'lib'
When rake task 'compile:extension_one' is invoked
And rake task 'compile:extension_one' succeeded
Then output of rake task 'compile:extension_one' does not match /extension_two/
And binary extension 'extension_one' do exist in 'lib'
And binary extension 'extension_two' do not exist in 'lib'
|