"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Mark Jamsek <mark@jamsek.com>
Subject:
Re: tog: basic diff regress
To:
Game of Trees <gameoftrees@openbsd.org>
Date:
Sat, 15 Apr 2023 02:05:38 +1000

Download raw body.

Thread
On 23-04-15 02:02AM, Mark Jamsek wrote:
> On 23-04-15 02:00AM, Mark Jamsek wrote:
> > The below diff adds two basic tog diff tests: one for contiguous (direct
> > parent/child 'tog diff parent child') commits; and another for arbitrary
> > commits.
> 
> Ignore previous, below fixes some 'log' copypasta.

Ah! Ignore both for the time being :)

> diff /home/mark/src/got
> commit - b568caa8aa856a6b8c4c435003250c6dd80b19a3
> path + /home/mark/src/got
> blob - 01409b433f1bc9d3bbbc19b1428c29ddf72802e1
> file + regress/tog/Makefile
> --- regress/tog/Makefile
> +++ regress/tog/Makefile
> @@ -1,4 +1,4 @@
> -REGRESS_TARGETS=log
> +REGRESS_TARGETS=log diff
>  NOOBJ=Yes
>  
>  GOT_TEST_ROOT=/tmp
> @@ -6,4 +6,7 @@ log:
>  log:
>  	./log.sh -q -r "$(GOT_TEST_ROOT)"
>  
> +diff:
> +	./diff.sh -q -r "$(GOT_TEST_ROOT)"
> +
>  .include <bsd.regress.mk>
> blob - /dev/null
> file + regress/tog/diff.sh (mode 755)
> --- /dev/null
> +++ regress/tog/diff.sh
> @@ -0,0 +1,136 @@
> +#!/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_test
> +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_test
> +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
> 
> -- 
> Mark Jamsek <fnc.bsdbox.org|got.bsdbox.org>
> GPG: F2FF 13DE 6A06 C471 CA80  E6E2 2930 DC66 86EE CF68

-- 
Mark Jamsek <fnc.bsdbox.org|got.bsdbox.org>
GPG: F2FF 13DE 6A06 C471 CA80  E6E2 2930 DC66 86EE CF68