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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
#!/usr/bin/env bats
load test_helper
NUM_DEFINITIONS="$(ls "$BATS_TEST_DIRNAME"/../share/ruby-build | wc -l)"
@test "list built-in definitions" {
run ruby-build --definitions
assert_success
assert_output_contains "1.9.3-p194"
assert_output_contains "jruby-1.7.9"
assert [ "${#lines[*]}" -eq "$NUM_DEFINITIONS" ]
}
@test "custom RUBY_BUILD_ROOT: nonexistent" {
export RUBY_BUILD_ROOT="$TMP"
assert [ ! -e "${RUBY_BUILD_ROOT}/share/ruby-build" ]
run ruby-build --definitions
assert_success ""
}
@test "custom RUBY_BUILD_ROOT: single definition" {
export RUBY_BUILD_ROOT="$TMP"
mkdir -p "${RUBY_BUILD_ROOT}/share/ruby-build"
touch "${RUBY_BUILD_ROOT}/share/ruby-build/1.9.3-test"
run ruby-build --definitions
assert_success "1.9.3-test"
}
@test "one path via RUBY_BUILD_DEFINITIONS" {
export RUBY_BUILD_DEFINITIONS="${TMP}/definitions"
mkdir -p "$RUBY_BUILD_DEFINITIONS"
touch "${RUBY_BUILD_DEFINITIONS}/1.9.3-test"
run ruby-build --definitions
assert_success
assert_output_contains "1.9.3-test"
assert [ "${#lines[*]}" -eq "$((NUM_DEFINITIONS + 1))" ]
}
@test "multiple paths via RUBY_BUILD_DEFINITIONS" {
export RUBY_BUILD_DEFINITIONS="${TMP}/definitions:${TMP}/other"
mkdir -p "${TMP}/definitions"
touch "${TMP}/definitions/1.9.3-test"
mkdir -p "${TMP}/other"
touch "${TMP}/other/2.1.2-test"
run ruby-build --definitions
assert_success
assert_output_contains "1.9.3-test"
assert_output_contains "2.1.2-test"
assert [ "${#lines[*]}" -eq "$((NUM_DEFINITIONS + 2))" ]
}
@test "installing definition from RUBY_BUILD_DEFINITIONS by priority" {
export RUBY_BUILD_DEFINITIONS="${TMP}/definitions:${TMP}/other"
mkdir -p "${TMP}/definitions"
echo true > "${TMP}/definitions/1.9.3-test"
mkdir -p "${TMP}/other"
echo false > "${TMP}/other/1.9.3-test"
run bin/ruby-build "1.9.3-test" "${TMP}/install"
assert_success ""
}
@test "installing nonexistent definition" {
run ruby-build "nonexistent" "${TMP}/install"
assert [ "$status" -eq 2 ]
assert_output "ruby-build: definition not found: nonexistent"
}
@test "sorting Ruby versions" {
export RUBY_BUILD_ROOT="$TMP"
mkdir -p "${RUBY_BUILD_ROOT}/share/ruby-build"
expected="1.9.3-dev
1.9.3-preview1
1.9.3-rc1
1.9.3-p0
1.9.3-p125
2.1.0-dev
2.1.0-rc1
2.1.0
2.1.1
2.2.0-dev
jruby-1.6.5
jruby-1.6.5.1
jruby-1.7.0-preview1
jruby-1.7.0-rc1
jruby-1.7.0
jruby-1.7.1
jruby-1.7.9
jruby-1.7.10
jruby-9000-dev
jruby-9000"
for ver in "$expected"; do
touch "${RUBY_BUILD_ROOT}/share/ruby-build/$ver"
done
run ruby-build --definitions
assert_success "$expected"
}
|