diff --git a/tools/release_checks.pike b/tools/release_checks.pike index 8cfb67885f71ea755348cfa8657b60c2643d967f..fe3d2061310ea17484d4ac602253f2df43d825e9 100644 --- a/tools/release_checks.pike +++ b/tools/release_checks.pike @@ -120,6 +120,45 @@ int test_realpike() { return status; } +array(int) read_version() { + array r = array_sscanf(Stdio.read_file("src/version.h"), + "%*sPIKE_MAJOR_VERSION %d%*s" + "PIKE_MINOR_VERSION %d%*s" + "PIKE_BUILD_VERSION %d"); + if(!r || sizeof(r)!=3) + error("Couldn't parse version.h\n"); + return r; +} + +void assert_version() { + array v = read_version(); + if( v[0]!=__REAL_MAJOR__ || v[1]!=__REAL_MINOR__ || + v[2]!=__REAL_BUILD__ ) { + write("You must be running the Pike you want to test.\n"); + exit(1); + } +} + +int test_version() { + int status=1; + array v = read_version(); + array t = array_sscanf(Stdio.read_file("ANNOUNCE"), + "%*sPIKE %d.%d ANNOUNCEMENT"); + + if(t[0]!=v[0] || t[1]!=v[1]) { + write("Wrong Pike version in ANNOUNCE.\n"); + status = 0; + } + + t = array_sscanf(Stdio.read_file("man/pike.1"), + "%*s.nr mj %d%*s.nr mn %d"); + if(t[0]!=v[0] || t[1]!=v[1]) { + write("Wrong Pike version in man/pike.1.\n"); + status = 0; + } + return status; +} + void main(int args) { if(args>1) { write("This program checks various aspects of the Pike tree\n" @@ -128,6 +167,8 @@ void main(int args) { } cd(combine_path(__FILE__,"../..")); + assert_version(); + test_constants(); test_copyright(); test_copying(); @@ -136,4 +177,5 @@ void main(int args) { test_charset_table("misc.c"); test_unicode(); test_realpike(); + test_version(); }