checkpointedBuild: fix tests for checkpointedBuild functions

This commit is contained in:
Martin Messer 2022-06-20 11:17:09 +02:00
parent cd6c65fe2d
commit c8afee88bf
3 changed files with 54 additions and 44 deletions

View File

@ -1,6 +1,6 @@
{ hello, buildIncremental, runCommandNoCC, texinfo, stdenv, rsync }:
let
baseHello = buildIncremental.prepareIncrementalBuild hello;
baseHelloArtifacts = buildIncremental.prepareIncrementalBuild hello;
patchedHello = hello.overrideAttrs (old: {
buildInputs = [ texinfo ];
src = runCommandNoCC "patch-hello-src" { } ''
@ -10,17 +10,17 @@ let
patch -p1 < ${./hello.patch}
'';
});
incrementalBuiltHello = buildIncremental.mkIncrementalBuild patchedHello baseHello.incrementalBuildArtifacts;
incrementalBuiltHello = buildIncremental.mkIncrementalBuild patchedHello baseHelloArtifacts;
incrementalBuiltHelloWithCheck = incrementalBuiltHello.overrideAttrs (old: {
doCheck = true;
checkPhase = ''
echo "checking if unchanged source file is not recompiled"
[ "$(stat --format="%Y" lib/exitfail.o)" = "$(stat --format="%Y" ${baseHello.incrementalBuildArtifacts}/lib/exitfail.o)" ]
[ "$(stat --format="%Y" lib/exitfail.o)" = "$(stat --format="%Y" ${baseHelloArtifacts}/outputs/lib/exitfail.o)" ]
'';
});
baseHelloRemoveFile = buildIncremental.prepareIncrementalBuild (hello.overrideAttrs (old: {
baseHelloRemoveFileArtifacts = buildIncremental.prepareIncrementalBuild (hello.overrideAttrs (old: {
patches = [ ./hello-additionalFile.patch ];
}));
@ -41,7 +41,7 @@ let
'';
});
incrementalBuiltHelloWithRemovedFile = buildIncremental.mkIncrementalBuild patchedHelloRemoveFile baseHelloRemoveFile.incrementalBuildArtifacts;
incrementalBuiltHelloWithRemovedFile = buildIncremental.mkIncrementalBuild patchedHelloRemoveFile baseHelloRemoveFileArtifacts;
in
stdenv.mkDerivation {
name = "patched-hello-returns-correct-output";

View File

@ -1,25 +1,30 @@
:100644 100644 0000000 0000000 M Makefile.in
:000000 100644 0000000 0000000 A src/additionalFile.c
:100644 100644 0000000 0000000 M src/hello.c
:100644 100644 0000000 0000000 M src/system.h
diff --git a/Makefile.in b/Makefile.in
index 0805eda..77b000c 100644
index 1597d39..f63f830 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -227,7 +227,7 @@ am_lib_libhello_a_OBJECTS = lib/c-ctype.$(OBJEXT) \
lib/quotearg.$(OBJEXT) lib/strnlen1.$(OBJEXT) \
lib/unistd.$(OBJEXT) lib/wctype-h.$(OBJEXT) \
lib/xmalloc.$(OBJEXT) lib/xalloc-die.$(OBJEXT) \
@@ -312,7 +312,7 @@ am_lib_libhello_a_OBJECTS = lib/basename-lgpl.$(OBJEXT) \
lib/version-etc.$(OBJEXT) lib/version-etc-fsf.$(OBJEXT) \
lib/wctype-h.$(OBJEXT) lib/xmalloc.$(OBJEXT) \
lib/xalloc-die.$(OBJEXT) lib/xstriconv.$(OBJEXT) \
- lib/xstrndup.$(OBJEXT)
+ lib/xstrndup.$(OBJEXT) src/additionalFile.$(OBJEXT)
lib_libhello_a_OBJECTS = $(am_lib_libhello_a_OBJECTS)
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" \
"$(DESTDIR)$(man1dir)"
@@ -1380,7 +1380,7 @@ lib_libhello_a_SOURCES = lib/c-ctype.h lib/c-ctype.c lib/c-strcase.h \
lib/gettext.h lib/localcharset.h lib/localcharset.c \
lib/progname.h lib/progname.c lib/quotearg.c lib/strnlen1.h \
lib/strnlen1.c lib/unistd.c lib/wctype-h.c lib/xmalloc.c \
- lib/xalloc-die.c lib/xstrndup.h lib/xstrndup.c
+ lib/xalloc-die.c lib/xstrndup.h lib/xstrndup.c src/additionalFile.c
am_hello_OBJECTS = src/hello.$(OBJEXT)
hello_OBJECTS = $(am_hello_OBJECTS)
@@ -1842,7 +1842,7 @@ lib_libhello_a_SOURCES = lib/basename-lgpl.c lib/c-ctype.h \
$(am__append_4) $(am__append_5) lib/version-etc.h \
lib/version-etc.c lib/version-etc-fsf.c lib/wctype-h.c \
lib/xmalloc.c lib/xalloc-die.c lib/xstriconv.h lib/xstriconv.c \
- lib/xstrndup.h lib/xstrndup.c
+ lib/xstrndup.h lib/xstrndup.c src/additionalFile.c
lib_libhello_a_LIBADD = $(gl_LIBOBJS)
lib_libhello_a_DEPENDENCIES = $(gl_LIBOBJS)
EXTRA_lib_libhello_a_SOURCES = lib/stripslash.c lib/error.c \
EXTRA_lib_libhello_a_SOURCES = lib/close.c lib/stripslash.c lib/dup2.c \
diff --git a/src/additionalFile.c b/src/additionalFile.c
new file mode 100644
index 0000000..34d683d
@ -33,10 +38,10 @@ index 0000000..34d683d
+ return 0;
+}
diff --git a/src/hello.c b/src/hello.c
index 453962f..df67de2 100644
index 2e7d38e..a8e36dc 100644
--- a/src/hello.c
+++ b/src/hello.c
@@ -57,7 +57,11 @@ main (int argc, char *argv[])
@@ -146,7 +146,11 @@ main (int argc, char *argv[])
#endif
/* Having initialized gettext, get the default message. */
@ -50,12 +55,12 @@ index 453962f..df67de2 100644
/* Even exiting has subtleties. On exit, if any writes failed, change
the exit status. The /dev/full device on GNU/Linux can be used for
diff --git a/src/system.h b/src/system.h
index d1acac2..935b955 100644
index d39cdb9..dc425d2 100644
--- a/src/system.h
+++ b/src/system.h
@@ -42,4 +42,6 @@
/* Check for errors on write. */
# include "closeout.h"
@@ -59,4 +59,6 @@
} \
while (0)
+int somefunc();
+

View File

@ -1,25 +1,30 @@
:100644 100644 0000000 0000000 M Makefile.in
:100644 000000 0000000 0000000 D src/additionalFile.c
:100644 100644 0000000 0000000 M src/hello.c
:100755 100755 0000000 0000000 M tests/hello-1
diff --git a/Makefile.in b/Makefile.in
index 77b000c..0805eda 100644
index f63f830..1597d39 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -227,7 +227,7 @@ am_lib_libhello_a_OBJECTS = lib/c-ctype.$(OBJEXT) \
lib/quotearg.$(OBJEXT) lib/strnlen1.$(OBJEXT) \
lib/unistd.$(OBJEXT) lib/wctype-h.$(OBJEXT) \
lib/xmalloc.$(OBJEXT) lib/xalloc-die.$(OBJEXT) \
@@ -312,7 +312,7 @@ am_lib_libhello_a_OBJECTS = lib/basename-lgpl.$(OBJEXT) \
lib/version-etc.$(OBJEXT) lib/version-etc-fsf.$(OBJEXT) \
lib/wctype-h.$(OBJEXT) lib/xmalloc.$(OBJEXT) \
lib/xalloc-die.$(OBJEXT) lib/xstriconv.$(OBJEXT) \
- lib/xstrndup.$(OBJEXT) src/additionalFile.$(OBJEXT)
+ lib/xstrndup.$(OBJEXT)
lib_libhello_a_OBJECTS = $(am_lib_libhello_a_OBJECTS)
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" \
"$(DESTDIR)$(man1dir)"
@@ -1380,7 +1380,7 @@ lib_libhello_a_SOURCES = lib/c-ctype.h lib/c-ctype.c lib/c-strcase.h \
lib/gettext.h lib/localcharset.h lib/localcharset.c \
lib/progname.h lib/progname.c lib/quotearg.c lib/strnlen1.h \
lib/strnlen1.c lib/unistd.c lib/wctype-h.c lib/xmalloc.c \
- lib/xalloc-die.c lib/xstrndup.h lib/xstrndup.c src/additionalFile.c
+ lib/xalloc-die.c lib/xstrndup.h lib/xstrndup.c
am_hello_OBJECTS = src/hello.$(OBJEXT)
hello_OBJECTS = $(am_hello_OBJECTS)
@@ -1842,7 +1842,7 @@ lib_libhello_a_SOURCES = lib/basename-lgpl.c lib/c-ctype.h \
$(am__append_4) $(am__append_5) lib/version-etc.h \
lib/version-etc.c lib/version-etc-fsf.c lib/wctype-h.c \
lib/xmalloc.c lib/xalloc-die.c lib/xstriconv.h lib/xstriconv.c \
- lib/xstrndup.h lib/xstrndup.c src/additionalFile.c
+ lib/xstrndup.h lib/xstrndup.c
lib_libhello_a_LIBADD = $(gl_LIBOBJS)
lib_libhello_a_DEPENDENCIES = $(gl_LIBOBJS)
EXTRA_lib_libhello_a_SOURCES = lib/stripslash.c lib/error.c \
EXTRA_lib_libhello_a_SOURCES = lib/close.c lib/stripslash.c lib/dup2.c \
diff --git a/src/additionalFile.c b/src/additionalFile.c
deleted file mode 100644
index 34d683d..0000000
@ -33,12 +38,12 @@ index 34d683d..0000000
- return 0;
-}
diff --git a/src/hello.c b/src/hello.c
index df67de2..768285a 100644
index a8e36dc..53722d9 100644
--- a/src/hello.c
+++ b/src/hello.c
@@ -36,6 +36,10 @@ static const struct option longopts[] = {
static void print_help (void);
static void print_version (void);
@@ -126,6 +126,10 @@ parse_options (int argc, char *argv[], const char **greeting_msg)
}
}
+int somefunc() {
+ return 1;
@ -48,7 +53,7 @@ index df67de2..768285a 100644
main (int argc, char *argv[])
{
diff --git a/tests/hello-1 b/tests/hello-1
index e15fa95..3b7a815 100755
index 96ffef8..f0b9f8d 100755
--- a/tests/hello-1
+++ b/tests/hello-1
@@ -21,7 +21,7 @@ export LANGUAGE LC_ALL LC_MESSAGES LANG