commit - 3ab12c25da83457de7f24433e48198c1206e56d5
commit + de7a51b7b8b94810307946710affa0f6e70de184
blob - 01409b433f1bc9d3bbbc19b1428c29ddf72802e1
blob + ac485dd3c4b41a848f35a558031031452fc7aa5e
--- regress/tog/Makefile
+++ regress/tog/Makefile
-REGRESS_TARGETS=log
+REGRESS_TARGETS=log diff
NOOBJ=Yes
GOT_TEST_ROOT=/tmp
log:
./log.sh -q -r "$(GOT_TEST_ROOT)"
+diff:
+ ./diff.sh -q -r "$(GOT_TEST_ROOT)"
+
.include <bsd.regress.mk>
blob - cba908caf919a31069c38c9bd18d8b7ea8952ba1
blob + 5d1923c4ca2250970b43c75113fe698afc43c8fa
--- regress/tog/common.sh
+++ regress/tog/common.sh
testroot=`mktemp -d "$GOT_TEST_ROOT/tog-test-$testname-XXXXXXXX"`
- set_test_env $testroot/log_test $testroot/view $columns $lines
+ set_test_env $testroot/$testname $testroot/view $columns $lines
mkdir $testroot/repo
git_init $testroot/repo
blob - 17a02a06bcc9a0d2dfc44329aa56339f21148c9d
blob + ebe153cb83ffd423e6db29b48c099f17ed6acdc9
--- regress/tog/log.sh
+++ regress/tog/log.sh
local date=`date -u -r $author_time +"%a %b %e %X %Y UTC"`
local ymd=`date -u -r $author_time +"%G-%m-%d"`
- cat <<EOF >$testroot/log_test
+ cat <<EOF >$testroot/log_hsplit_diff
KEY_ENTER open diff view of selected commit
S toggle horizontal split
SCREENDUMP
local blobid_alpha=`get_blob_id $testroot/repo "" alpha`
local blobid_beta=`get_blob_id $testroot/repo "" beta`
- cat <<EOF >$testroot/log_test
+ cat <<EOF >$testroot/log_vsplit_diff
KEY_ENTER open diff view of selected commit in vertical split
SCREENDUMP
EOF
local commit1=`git_show_head $testroot/repo`
local id1_len8=`trim_obj_id 32 $commit1`
- cat <<EOF >$testroot/log_test
+ cat <<EOF >$testroot/log_show_author
@ toggle show author
SCREENDUMP
EOF
local commit1=`git_show_head $testroot/repo`
- cat <<EOF >$testroot/log_test
+ cat <<EOF >$testroot/log_scroll_right
l scroll right
l scroll right
SCREENDUMP
local date=`date -u -r $author_time +"%a %b %e %X %Y UTC"`
local ymd=`date -u -r $author_time +"%G-%m-%d"`
- cat <<EOF >$testroot/log_test
+ cat <<EOF >$testroot/log_hsplit_ref
R open ref view
S toggle horizontal split
- reduce size of ref view split
local date=`date -u -r $author_time +"%a %b %e %X %Y UTC"`
local ymd=`date -u -r $author_time +"%G-%m-%d"`
- cat <<EOF >$testroot/log_test
+ cat <<EOF >$testroot/log_hsplit_tree
T open tree view
S toggle horizontal split
j move selection cursor down one entry to "beta"
local commit1=`git_show_parent_commit $testroot/repo`
local blobid=`get_blob_id $testroot/repo "" $(widechar_filename)`
- cat <<EOF >$testroot/log_test
+ cat <<EOF >$testroot/log_logmsg_widechar
KEY_ENTER open selected commit in diff view
F toggle fullscreen
SCREENDUMP
blob - /dev/null
blob + 902869a9ca413b91478973db6d9a321762064b65 (mode 755)
--- /dev/null
+++ regress/tog/diff.sh
+#!/bin/sh
+#
+# Copyright (c) 2023 Mark Jamsek <mark@jamsek.dev>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+. ./common.sh
+
+test_diff_contiguous_commits()
+{
+ test_init diff_contiguous_commits
+
+ local commit_id1=`git_show_head $testroot/repo`
+ local alpha_id_old=`get_blob_id $testroot/repo "" alpha`
+
+ echo "modified alpha" > $testroot/repo/alpha
+ git_commit $testroot/repo -m "changed alpha"
+ local author_time=`git_show_author_time $testroot/repo`
+ local date=`date -u -r $author_time +"%a %b %e %X %Y UTC"`
+ local head_id=`git_show_head $testroot/repo`
+ local head_id_truncated=`trim_obj_id 13 $head_id`
+ local alpha_id=`get_blob_id $testroot/repo "" alpha`
+
+ cat <<EOF >$testroot/diff_contiguous_commits
+SCREENDUMP
+EOF
+
+ cat <<EOF >$testroot/view.expected
+[1/20] diff $commit_id1 $head_id_truncated
+commit $head_id (master)
+from: Flan Hacker <flan_hacker@openbsd.org>
+date: $date
+
+changed alpha
+
+M alpha | 1+ 1-
+
+1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit - $commit_id1
+commit + $head_id
+blob - $alpha_id_old
+blob + $alpha_id
+--- alpha
++++ alpha
+@@ -1 +1 @@
+-alpha
++modified alpha
+
+
+
+(END)
+EOF
+
+ cd $testroot/repo && tog diff $commit_id1 $head_id
+ cmp -s $testroot/view.expected $testroot/view
+ ret=$?
+ if [ $ret -ne 0 ]; then
+ diff -u $testroot/view.expected $testroot/view
+ test_done "$testroot" "$ret"
+ return 1
+ fi
+
+ test_done "$testroot" "$ret"
+}
+
+test_diff_arbitrary_commits()
+{
+ test_init diff_arbitrary_commits 80 18
+
+ local commit_id1=`git_show_head $testroot/repo`
+ local alpha_id_old=`get_blob_id $testroot/repo "" alpha`
+
+ echo "modified alpha" > $testroot/repo/alpha
+ git_commit $testroot/repo -m "changed alpha"
+ local commit_id2=`git_show_head $testroot/repo`
+
+ echo "modified alpha again" > $testroot/repo/alpha
+ echo "new file" > $testroot/repo/new
+ (cd $testroot/repo && git add new)
+ git_commit $testroot/repo -m "new file"
+ local head_id=`git_show_head $testroot/repo`
+ local head_id_truncated=`trim_obj_id 13 $head_id`
+ local alpha_id=`get_blob_id $testroot/repo "" alpha`
+ local new_id=`get_blob_id $testroot/repo "" new`
+
+ cat <<EOF >$testroot/diff_arbitrary_commits
+SCREENDUMP
+EOF
+
+ cat <<EOF >$testroot/view.expected
+[1/16] diff $commit_id1 $head_id_truncated
+commit - $commit_id1
+commit + $head_id
+blob - $alpha_id_old
+blob + $alpha_id
+--- alpha
++++ alpha
+@@ -1 +1 @@
+-alpha
++modified alpha again
+blob - /dev/null
+blob + $new_id (mode 644)
+--- /dev/null
++++ new
+@@ -0,0 +1 @@
++new file
+
+(END)
+EOF
+
+ cd $testroot/repo && tog diff $commit_id1 $head_id
+ cmp -s $testroot/view.expected $testroot/view
+ ret=$?
+ if [ $ret -ne 0 ]; then
+ diff -u $testroot/view.expected $testroot/view
+ test_done "$testroot" "$ret"
+ return 1
+ fi
+
+ test_done "$testroot" "$ret"
+}
+
+test_parseargs "$@"
+run_test test_diff_contiguous_commits
+run_test test_diff_arbitrary_commits