mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
94 lines
2.1 KiB
Bash
Executable File
94 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
source common.sh
|
|
|
|
function test_generic() {
|
|
dvc_info '=== Generic repro test'
|
|
|
|
dvc_create_repo
|
|
|
|
dvc_info 'Copy foo into foo1'
|
|
dvc run -D code/code.sh -d data/foo -o data/foo1 bash code/code.sh data/foo data/foo1
|
|
|
|
dvc_info 'Modify code'
|
|
echo " " >> code/code.sh
|
|
git commit -am 'Change code'
|
|
|
|
dvc_info 'Reproduce foo1'
|
|
dvc repro
|
|
dvc_check_files data/foo1 data/foo1.dvc
|
|
if [ "$(cat data/foo1)" != "foo" ]; then
|
|
dvc_fail
|
|
fi
|
|
|
|
dvc_info 'Modify foo'
|
|
rm -f data/foo
|
|
cp $DATA_CACHE/bar data/foo
|
|
|
|
dvc_info 'Reproduce foo1 as default target'
|
|
dvc repro
|
|
dvc_check_files data/foo1 data/foo1.dvc
|
|
if [ "$(cat data/foo1)" != "bar" ]; then
|
|
dvc_fail
|
|
fi
|
|
}
|
|
|
|
function test_partial() {
|
|
dvc_info "=== Partial repro test"
|
|
|
|
dvc_create_repo
|
|
|
|
cp code/code.sh code/code1.sh
|
|
cp code/code1.sh code/code2.sh
|
|
cp code/code2.sh code/code3.sh
|
|
git add code
|
|
git commit -m "copy code"
|
|
|
|
dvc_info "Create repro chain foo -> foo1 -> foo2 -> foo3"
|
|
dvc run -f copy_foo_foo1.dvc -D code/code1.sh -d data/foo -o data/foo1 cp data/foo data/foo1
|
|
dvc run -f copy_foo1_foo2.dvc -D code/code2.sh -d data/foo1 -o data/foo2 cp data/foo1 data/foo2
|
|
dvc run -f copy_foo2_foo3.dvc -D code/code3.sh -d data/foo2 -o data/foo3 cp data/foo2 data/foo3
|
|
|
|
dvc_info "Save original timestamps"
|
|
FOO_TS=$(dvc_timestamp data/foo)
|
|
FOO1_TS=$(dvc_timestamp data/foo1)
|
|
FOO2_TS=$(dvc_timestamp data/foo2)
|
|
FOO3_TS=$(dvc_timestamp data/foo3)
|
|
|
|
dvc_info "Modify dependency for data/foo1, that will not result in data/foo1 contents being changed"
|
|
echo " " >> code/code1.sh
|
|
git add code
|
|
git commit -m "modify code1.sh"
|
|
|
|
dvc_info "Reproduce data/foo3"
|
|
dvc repro copy_foo2_foo3.dvc
|
|
|
|
dvc_info "Check timestamps"
|
|
if [ "$FOO_TS" != "$(dvc_timestamp data/foo)" ]; then
|
|
dvc_error "data/foo timestamp changed"
|
|
dvc_fail
|
|
fi
|
|
|
|
if [ "$FOO1_TS" != "$(dvc_timestamp data/foo1)" ]; then
|
|
dvc_error "data/foo1 timestamp changed"
|
|
dvc_fail
|
|
fi
|
|
|
|
if [ "$FOO2_TS" != "$(dvc_timestamp data/foo2)" ]; then
|
|
dvc_error "data/foo2 timestamp changed"
|
|
dvc_fail
|
|
fi
|
|
|
|
if [ "$FOO3_TS" != "$(dvc_timestamp data/foo3)" ]; then
|
|
dvc_error "data/foo3 timestamp changed"
|
|
dvc_fail
|
|
fi
|
|
}
|
|
|
|
test_generic
|
|
test_partial
|
|
|
|
dvc_pass
|