diff options
author | 2016-05-18 23:29:46 +0100 | |
---|---|---|
committer | 2016-05-22 23:06:16 +0100 | |
commit | 1c09a26ff45d4da33f9efce2950925ee917c9e0b (patch) | |
tree | 4e4f0745eb331c0b382534fb54ff7b8d4c64973e /eclass/tests/rebar_fix_include_path.sh | |
parent | app-portage/repoman: Add missed lxml dep for the 9999 ebuild (diff) | |
download | gentoo-1c09a26ff45d4da33f9efce2950925ee917c9e0b.tar.gz gentoo-1c09a26ff45d4da33f9efce2950925ee917c9e0b.tar.bz2 gentoo-1c09a26ff45d4da33f9efce2950925ee917c9e0b.zip |
rebar.eclass: Build Erlang/OTP projects using dev-util/rebar
It is an eclass providing functions to build Erlang/OTP projects using
dev-util/rebar. All packages in upcoming category dev-erlang are going
to use this eclass.
Diffstat (limited to 'eclass/tests/rebar_fix_include_path.sh')
-rwxr-xr-x | eclass/tests/rebar_fix_include_path.sh | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/eclass/tests/rebar_fix_include_path.sh b/eclass/tests/rebar_fix_include_path.sh new file mode 100755 index 000000000000..9047f8dcd225 --- /dev/null +++ b/eclass/tests/rebar_fix_include_path.sh @@ -0,0 +1,159 @@ +#!/bin/bash +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +source tests-common.sh + +EAPI=6 + +inherit rebar + +EPREFIX="${tmpdir}/fakeroot" +S="${WORKDIR}/${P}" + +setup() { + mkdir -p "${S}" || die + + for pkg in foo-0.1.0 bar-0.1.0; do + mkdir -p "${EPREFIX}$(get_erl_libs)/${pkg}/include" || die + done + + cat <<EOF >"${S}/typical.config" || die +%%% Comment + +{erl_opts, [debug_info, {src_dirs, ["src"]}, + {i, "include"}, + {i, "deps/foo/include"}, + {i, "../foo/include"}]}. + +{port_env, [{"CFLAGS", "\$CFLAGS"}, {"LDFLAGS", "\$LDFLAGS"}]}. +EOF + + cat <<EOF >"${S}/typical.config.expected" || die +%%% Comment + +{erl_opts, [debug_info, {src_dirs, ["src"]}, + {i, "include"}, + {i, "${EPREFIX}$(get_erl_libs)/foo-0.1.0/include"}, + {i, "../foo/include"}]}. + +{port_env, [{"CFLAGS", "\$CFLAGS"}, {"LDFLAGS", "\$LDFLAGS"}]}. +EOF + + cat <<EOF >"${S}/inc_one_line.config" || die +%%% Comment + +{erl_opts, [debug_info, {src_dirs, ["src"]}, {i, "include"}, {i, "deps/foo/include"}, {i, "../foo/include"}]}. + +{port_env, [{"CFLAGS", "\$CFLAGS"}, {"LDFLAGS", "\$LDFLAGS"}]}. +EOF + + cat <<EOF >"${S}/inc_one_line.config.expected" || die +%%% Comment + +{erl_opts, [debug_info, {src_dirs, ["src"]}, {i, "include"}, {i, "${EPREFIX}$(get_erl_libs)/foo-0.1.0/include"}, {i, "../foo/include"}]}. + +{port_env, [{"CFLAGS", "\$CFLAGS"}, {"LDFLAGS", "\$LDFLAGS"}]}. +EOF +} + +test_typical_config() { + local diff_rc + local unit_rc + + # Prepare + cd "${S}" || die + cp typical.config rebar.config || die + + # Run unit + (rebar_fix_include_path foo) + unit_rc=$? + + # Test result + diff rebar.config typical.config.expected + diff_rc=$? + + [[ ${unit_rc}${diff_rc} = 00 ]] +} + +test_multiple_versions() { + local diff_rc + local unit_rc + + # Prepare + cd "${S}" || die + cp typical.config rebar.config || die + mkdir -p "${EPREFIX}$(get_erl_libs)/foo-1.0.0/include" || die + + # Run unit + (rebar_fix_include_path foo 2>/dev/null) + unit_rc=$? + + # Test result + diff rebar.config typical.config + diff_rc=$? + + # Clean up + rm -r "${EPREFIX}$(get_erl_libs)/foo-1.0.0" || die + + [[ ${unit_rc}${diff_rc} = 10 ]] +} + +test_not_found() { + local diff_rc + local unit_rc + + # Prepare + cd "${S}" || die + cp typical.config rebar.config || die + + # Run unit + (rebar_fix_include_path fo 2>/dev/null) + unit_rc=$? + + # Test result + diff rebar.config typical.config + diff_rc=$? + + [[ ${unit_rc}${diff_rc} = 10 ]] +} + +test_includes_in_one_line() { + local diff_rc + local unit_rc + + # Prepare + cd "${S}" || die + cp inc_one_line.config rebar.config || die + + # Run unit + (rebar_fix_include_path foo) + unit_rc=$? + + # Test result + diff rebar.config inc_one_line.config.expected + diff_rc=$? + + [[ ${unit_rc}${diff_rc} = 00 ]] +} + +setup + +tbegin "rebar_fix_include_path deals with typical config" +test_typical_config +tend $? + +tbegin "rebar_fix_include_path fails on multiple versions of dependency" +test_multiple_versions +tend $? + +tbegin "rebar_fix_include_path fails if dependency is not found" +test_not_found +tend $? + +tbegin "rebar_fix_include_path deals with all includes in one line" +test_includes_in_one_line +tend $? + +texit |