From b8cc3a51721d0d5bb6c5dd32af74b00fef74f10a Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Jun 09 2019 22:11:56 +0000 Subject: Release of 19.05.0 Added nss_plugin subpackage for optional nss plugin Added patch to fix 19.05.0 testsuite Adjusted cray patch to remove all cray, cray_aries plugins Reflect all upstream plugin additions/deletions Remove openssl build dependency --- diff --git a/slurm.spec b/slurm.spec index 6ac71c8..debed12 100644 --- a/slurm.spec +++ b/slurm.spec @@ -11,8 +11,8 @@ %undefine _strict_symbol_defs_build Name: slurm -Version: 18.08.7 -Release: 2%{?dist} +Version: 19.05.0 +Release: 1%{?dist} Summary: Simple Linux Utility for Resource Management License: GPLv2 and BSD URL: https://slurm.schedmd.com/ @@ -25,6 +25,8 @@ Source5: slurm-setuser.in # Upstream bug #4449: release-style versioning of libslurmfull Patch0: slurm_libslurmfull_version.patch +# Upstream bug #7197: fix 19.05.0 testsuite +Patch1: slurm_fix_testsuite.patch # Build-related patches Patch10: slurm_perlapi_rpaths.patch @@ -64,7 +66,6 @@ BuildRequires: pkgconfig(lua) BuildRequires: pkgconfig(mariadb) BuildRequires: pkgconfig(munge) BuildRequires: pkgconfig(ncurses) -BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(pmix) >= 2.0.0 BuildRequires: pkgconfig(zlib) BuildRequires: readline-devel @@ -157,6 +158,15 @@ Slurm contribution package which includes the programs seff, sjobexitmod, sjstat and smail. See their respective man pages for more information. +%package nss_slurm +Summary: NSS plugin for slurm +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%description nss_slurm +nss_slurm is an optional NSS plugin that can permit passwd and group resolution +for a job on the compute node to be serviced through the local slurmstepd +process, rather than through some alternate network-based service such as LDAP, +SSSD, or NSLCD. + %package openlava Summary: Openlava/LSF wrappers for transition from OpenLava/LSF to Slurm Requires: %{name}-perlapi%{?_isa} = %{version}-%{release} @@ -190,6 +200,7 @@ Torque wrapper scripts used for helping migrate from Torque/PBS to Slurm. %prep %setup -q -n %{name_version} %patch0 -p1 +%patch1 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 @@ -393,7 +404,7 @@ done # contribs docs install -d -m 0755 %{buildroot}%{_docdir}/%{name}/contribs/lua install -m 0644 contribs/README %{buildroot}%{_docdir}/%{name}/contribs -install -m 0644 contribs/lua/proctrack.lua %{buildroot}%{_docdir}/%{name}/contribs/lua +install -m 0644 contribs/lua/*.lua %{buildroot}%{_docdir}/%{name}/contribs/lua # remove libtool archives find %{buildroot} -name \*.a -o -name \*.la | xargs rm -f @@ -405,18 +416,7 @@ rm -f %{buildroot}%{_libdir}/%{name}/auth_none.so rm -f %{buildroot}%{_libdir}/%{name}/job_submit_defaults.so rm -f %{buildroot}%{_libdir}/%{name}/job_submit_logging.so rm -f %{buildroot}%{_libdir}/%{name}/job_submit_partition.so -# remove bluegene files -rm -f %{buildroot}%{_libdir}/%{name}/select_bluegene.so -rm -f %{buildroot}%{_mandir}/man5/bluegene* # remove cray files -rm -f %{buildroot}%{_libdir}/%{name}/acct_gather_energy_cray.so -rm -f %{buildroot}%{_libdir}/%{name}/core_spec_cray.so -rm -f %{buildroot}%{_libdir}/%{name}/job_container_cncu.so -rm -f %{buildroot}%{_libdir}/%{name}/job_submit_cray.so -rm -f %{buildroot}%{_libdir}/%{name}/select_alps.so -rm -f %{buildroot}%{_libdir}/%{name}/select_cray.so -rm -f %{buildroot}%{_libdir}/%{name}/switch_cray.so -rm -f %{buildroot}%{_libdir}/%{name}/task_cray.so rm -f %{buildroot}%{_mandir}/man5/cray* # remove perl cruft rm -f %{buildroot}%{perl_vendorarch}/auto/Slurm*/.packlist @@ -455,11 +455,12 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_libdir}/%{name}/auth_munge.so %{_libdir}/%{name}/burst_buffer_generic.so %{_libdir}/%{name}/checkpoint_{none,ompi}.so +%{_libdir}/%{name}/cli_filter_none.so %{_libdir}/%{name}/core_spec_none.so -%{_libdir}/%{name}/crypto_munge.so -%{_libdir}/%{name}/crypto_openssl.so +%{_libdir}/%{name}/cred_{munge,none}.so %{_libdir}/%{name}/ext_sensors_none.so -%{_libdir}/%{name}/gres_{gpu,mic,nic}.so +%{_libdir}/%{name}/gres_{gpu,mic,mps,nic}.so +%{_libdir}/%{name}/gpu_generic.so %{_libdir}/%{name}/job_container_none.so %{_libdir}/%{name}/job_submit_all_partitions.so %{_libdir}/%{name}/job_submit_lua.so @@ -479,7 +480,8 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_libdir}/%{name}/proctrack_{cgroup,linuxproc,lua,pgid}.so %{_libdir}/%{name}/route_{default,topology}.so %{_libdir}/%{name}/sched_{backfill,builtin,hold}.so -%{_libdir}/%{name}/select_{cons_res,linear,serial}.so +%{_libdir}/%{name}/select_{cons_res,cons_tres,linear,serial}.so +%{_libdir}/%{name}/site_factor_none.so %{_libdir}/%{name}/slurmctld_nonstop.so %{_libdir}/%{name}/switch_{generic,none}.so %{_libdir}/%{name}/task_{affinity,cgroup,none}.so @@ -558,7 +560,6 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %dir %{_libdir}/%{name}/lib %dir %{_modulesdir}/pmi %{_libdir}/libslurm.so.* -%{_libdir}/libslurmdb.so.* %{_libdir}/libslurmfull-*.so %{_libdir}/%{name}/lib/libpmi*.so.* %{_modulesdir}/pmi/* @@ -615,7 +616,7 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %dir %{_docdir}/%{name}/contribs %dir %{_docdir}/%{name}/contribs/lua %{_docdir}/%{name}/contribs/README -%{_docdir}/%{name}/contribs/lua/proctrack.lua +%{_docdir}/%{name}/contribs/lua/*.lua %{_bindir}/seff %{_bindir}/sgather %{_bindir}/sjobexitmod @@ -625,6 +626,13 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_mandir}/man1/sjobexitmod.1* %{_mandir}/man1/sjstat.1* +# --------------- +# Slurm-nss_slurm +# --------------- + +%files nss_slurm +%{_libdir}/libnss_slurm.so.2 + # -------------- # Slurm-openlava # -------------- @@ -718,6 +726,14 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %systemd_postun_with_restart slurmdbd.service %changelog +* Sun Jun 9 2019 Philip Kovacs - 19.05.0-1 +- Release of 19.05.0 +- Added nss_plugin subpackage for optional nss plugin +- Added patch to fix 19.05.0 testsuite +- Adjusted cray patch to remove all cray, cray_aries plugins +- Reflect all upstream plugin additions/deletions +- Remove openssl build dependency + * Thu May 30 2019 Jitka Plesnikova - 18.08.7-2 - Perl 5.30 rebuild diff --git a/slurm_do_not_build_cray.patch b/slurm_do_not_build_cray.patch index 7ec7ecc..8b994dc 100644 --- a/slurm_do_not_build_cray.patch +++ b/slurm_do_not_build_cray.patch @@ -1,10 +1,101 @@ diff --git a/contribs/Makefile.am b/contribs/Makefile.am -index 24ab9de7cc..087262c347 100644 +index da96aa070d..2a2d1f2c82 100644 --- a/contribs/Makefile.am +++ b/contribs/Makefile.am @@ -1,4 +1,4 @@ --SUBDIRS = cray lua mic openlava pam pam_slurm_adopt perlapi pmi pmi2 seff sgather sgi sjobexit torque -+SUBDIRS = lua mic openlava pam pam_slurm_adopt perlapi pmi pmi2 seff sgather sgi sjobexit torque +-SUBDIRS = cray lua mic nss_slurm openlava pam pam_slurm_adopt perlapi pmi pmi2 seff sgather sgi sjobexit torque ++SUBDIRS = lua mic nss_slurm openlava pam pam_slurm_adopt perlapi pmi pmi2 seff sgather sgi sjobexit torque EXTRA_DIST = \ - gcp \ + make-3.81.slurm.patch \ +diff --git a/src/plugins/acct_gather_energy/Makefile.am b/src/plugins/acct_gather_energy/Makefile.am +index 50c4fd36a2..c826387219 100644 +--- a/src/plugins/acct_gather_energy/Makefile.am ++++ b/src/plugins/acct_gather_energy/Makefile.am +@@ -1,3 +1,3 @@ + # Makefile for accounting gather energy plugins + +-SUBDIRS = cray_aries rapl ibmaem ipmi none xcc ++SUBDIRS = rapl ibmaem ipmi none xcc +diff --git a/src/plugins/core_spec/Makefile.am b/src/plugins/core_spec/Makefile.am +index 44b1ed67c0..f06bc541d7 100644 +--- a/src/plugins/core_spec/Makefile.am ++++ b/src/plugins/core_spec/Makefile.am +@@ -1,3 +1,3 @@ + # Makefile for core specialization plugins + +-SUBDIRS = cray_aries none ++SUBDIRS = none +diff --git a/src/plugins/job_container/Makefile.am b/src/plugins/job_container/Makefile.am +index 8e1960a456..529a9d581d 100644 +--- a/src/plugins/job_container/Makefile.am ++++ b/src/plugins/job_container/Makefile.am +@@ -1,3 +1,3 @@ + # Makefile for job_container plugins + +-SUBDIRS = cncu none ++SUBDIRS = none +diff --git a/src/plugins/job_submit/Makefile.am b/src/plugins/job_submit/Makefile.am +index e393bcfb1c..b98cf2e000 100644 +--- a/src/plugins/job_submit/Makefile.am ++++ b/src/plugins/job_submit/Makefile.am +@@ -2,7 +2,6 @@ + + SUBDIRS = \ + all_partitions \ +- cray_aries \ + defaults \ + logging \ + lua \ +diff --git a/src/plugins/node_features/Makefile.am b/src/plugins/node_features/Makefile.am +index f5ef036303..d955c51ba1 100644 +--- a/src/plugins/node_features/Makefile.am ++++ b/src/plugins/node_features/Makefile.am +@@ -1,3 +1,3 @@ + # Makefile for node_features plugins + +-SUBDIRS = knl_cray knl_generic ++SUBDIRS = knl_generic +diff --git a/src/plugins/power/Makefile.am b/src/plugins/power/Makefile.am +index ccde44c322..c6171740c1 100644 +--- a/src/plugins/power/Makefile.am ++++ b/src/plugins/power/Makefile.am +@@ -1,3 +1,3 @@ + # Makefile for power management plugins + +-SUBDIRS = common cray_aries none ++SUBDIRS = common none +diff --git a/src/plugins/select/Makefile.am b/src/plugins/select/Makefile.am +index 09fdfd2313..570af23c4a 100644 +--- a/src/plugins/select/Makefile.am ++++ b/src/plugins/select/Makefile.am +@@ -1,7 +1,7 @@ + # Makefile for node selection plugins + + # NOTE: other must be in the list before cray_aries lest the build break +-SUBDIRS = other cons_res cons_tres cray_aries linear ++SUBDIRS = other cons_res cons_tres linear + + # Each plugin here needs a plugin_id, here are the currect plug_ids + # for each plugin. +diff --git a/src/plugins/switch/Makefile.am b/src/plugins/switch/Makefile.am +index ddfe019a65..39a2b3eb7f 100644 +--- a/src/plugins/switch/Makefile.am ++++ b/src/plugins/switch/Makefile.am +@@ -1,3 +1,3 @@ + # Makefile for switch plugins + +-SUBDIRS = cray_aries generic none ++SUBDIRS = generic none +diff --git a/src/plugins/task/Makefile.am b/src/plugins/task/Makefile.am +index 8d2a36eb68..607af1cb7c 100644 +--- a/src/plugins/task/Makefile.am ++++ b/src/plugins/task/Makefile.am +@@ -1,6 +1,6 @@ + # Makefile for task plugins + +-SUBDIRS = cray_aries none ++SUBDIRS = none + + if HAVE_SCHED_SETAFFINITY + SUBDIRS += affinity diff --git a/slurm_fix_testsuite.patch b/slurm_fix_testsuite.patch new file mode 100644 index 0000000..4cf2c80 --- /dev/null +++ b/slurm_fix_testsuite.patch @@ -0,0 +1,579 @@ +commit 7fa8a69d8eda68ac1fa144de7686e47d18161037 +Author: Philip Kovacs +Date: Fri Jun 7 07:33:01 2019 -0600 + + patch for 19.05.0 testsuite `make check` errors + + bug 7197 + +diff --git a/testsuite/slurm_unit/common/slurm_protocol_pack/pack_job_alloc_info_msg-test.c b/testsuite/slurm_unit/common/slurm_protocol_pack/pack_job_alloc_info_msg-test.c +index 2f245622e7..ca95f636a8 100644 +--- a/testsuite/slurm_unit/common/slurm_protocol_pack/pack_job_alloc_info_msg-test.c ++++ b/testsuite/slurm_unit/common/slurm_protocol_pack/pack_job_alloc_info_msg-test.c +@@ -59,7 +59,7 @@ START_TEST(pack_1702_req_null_ptrs) + unpack_req = (job_alloc_info_msg_t *)msg.data; + ck_assert_int_eq(rc, SLURM_SUCCESS); + ck_assert(unpack_req); +- ck_assert(!unpack_req->req_cluster); /* >= 17.11 */ ++ //ck_assert(!unpack_req->req_cluster); /* >= 17.11 */ + ck_assert_uint_eq(unpack_req->job_id, pack_req.job_id); + + free_buf(buf); +@@ -94,7 +94,7 @@ START_TEST(pack_1702_req) + unpack_req = (job_alloc_info_msg_t *)msg.data; + ck_assert_int_eq(rc, SLURM_SUCCESS); + ck_assert(unpack_req); +- ck_assert(!unpack_req->req_cluster); /* >= 17.11 */ ++ //ck_assert(!unpack_req->req_cluster); /* >= 17.11 */ + ck_assert_uint_eq(unpack_req->job_id, pack_req.job_id); + + free_buf(buf); +diff --git a/testsuite/slurm_unit/common/slurmdb_pack/pack_federation_rec-test.c b/testsuite/slurm_unit/common/slurmdb_pack/pack_federation_rec-test.c +index dd10e1b857..d068fef66d 100644 +--- a/testsuite/slurm_unit/common/slurmdb_pack/pack_federation_rec-test.c ++++ b/testsuite/slurm_unit/common/slurmdb_pack/pack_federation_rec-test.c +@@ -236,9 +236,9 @@ Suite* suite(void) + TCase* tc_core = tcase_create("Pack slurmdb_federation_rec_t"); + tcase_add_test(tc_core, invalid_protocol); + tcase_add_test(tc_core, pack_1702_federation_rec); +- tcase_add_test(tc_core, pack_1702_null_federation_rec); ++ //tcase_add_test(tc_core, pack_1702_null_federation_rec); + tcase_add_test(tc_core, pack_1702_federation_rec_empty_list); +- tcase_add_test(tc_core, pack_1702_federation_rec_fail); ++ //tcase_add_test(tc_core, pack_1702_federation_rec_fail); + + tcase_add_test(tc_core, pack_1711_federation_rec); + tcase_add_test(tc_core, pack_1711_null_federation_rec); +diff --git a/testsuite/slurm_unit/common/xhash-test.c b/testsuite/slurm_unit/common/xhash-test.c +index 46616aef2b..2fc4d1d373 100644 +--- a/testsuite/slurm_unit/common/xhash-test.c ++++ b/testsuite/slurm_unit/common/xhash-test.c +@@ -49,12 +49,11 @@ typedef struct hashable_st { + uint32_t idn; + } hashable_t; + +-const char* hashable_identify(void* voiditem) ++void hashable_identify(void* voiditem, const char** key, uint32_t* key_len) + { + hashable_t* item = (hashable_t*)voiditem; +- if (!item->id[0]) snprintf(item->id, 255, "%lu", +- (unsigned long)item->idn); +- return item->id; ++ *key = item->id; ++ *key_len = strlen(item->id); + } + + /***************************************************************************** +@@ -71,7 +70,7 @@ static void setup(void) + g_ht = xhash_init(hashable_identify, NULL); + if (!g_ht) return; /* fatal error, will be detected by test cases */ + for (i = 0; i < g_hashableslen; ++i) { +- g_hashables[i].id[0] = 0; ++ snprintf(g_hashables[i].id, sizeof(g_hashables[i].id), "%d", i); + g_hashables[i].idn = i; + /* it is an error if xhash_add returns null but it will be + * detected by test cases */ +@@ -120,7 +119,7 @@ START_TEST(test_add) + fail_unless(xhash_add(ht, a+3) != NULL, "xhash_add failed"); + for (i = 0; i < len; ++i) { + snprintf(buffer, sizeof(buffer), "%d", i); +- fail_unless(xhash_get(ht, buffer) == (a + i), ++ fail_unless(xhash_get_str(ht, buffer) == (a + i), + "bad hashable item returned"); + } + xhash_free(ht); +@@ -134,14 +133,14 @@ START_TEST(test_find) + int i; + + /* test bad match */ +- fail_unless(xhash_get(ht, "bad") == NULL , "invalid case not null"); +- fail_unless(xhash_get(ht, "-1") == NULL , "invalid case not null"); +- fail_unless(xhash_get(ht, "10000") == NULL, "invalid case not null"); ++ fail_unless(xhash_get_str(ht, "bad") == NULL , "invalid case not null"); ++ fail_unless(xhash_get_str(ht, "-1") == NULL , "invalid case not null"); ++ fail_unless(xhash_get_str(ht, "10000") == NULL, "invalid case not null"); + + /* test all good indexes */ + for (i = 0; i < g_hashableslen; ++i) { + snprintf(buffer, sizeof(buffer), "%d", i); +- fail_unless(xhash_get(ht, buffer) == (g_hashables + i), ++ fail_unless(xhash_get_str(ht, buffer) == (g_hashables + i), + "bad hashable item returned"); + } + } +@@ -156,7 +155,7 @@ static int test_delete_helper() + char buffer[255]; + for (i = 0; i < g_hashableslen; ++i) { + snprintf(buffer, sizeof(buffer), "%d", i); +- if (xhash_get(ht, buffer) != (g_hashables + i)) { ++ if (xhash_get_str(ht, buffer) != (g_hashables + i)) { + ++ret; + } + } +@@ -170,10 +169,10 @@ START_TEST(test_delete) + char buffer[255]; + + /* invalid cases */ +- xhash_delete(NULL, "1"); +- fail_unless(xhash_get(ht, "1") != NULL, "invalid case null"); ++ xhash_delete_str(NULL, "1"); ++ fail_unless(xhash_get_str(ht, "1") != NULL, "invalid case null"); + /* Deleting non-existent item should do nothing. */ +- xhash_delete(ht, NULL); ++ xhash_delete(ht, NULL, 0); + fail_unless(xhash_count(ht) == g_hashableslen, + "invalid delete has been done"); + result = test_delete_helper(); +@@ -182,17 +181,17 @@ START_TEST(test_delete) + result); + + /* test correct deletion */ +- xhash_delete(ht, "10"); +- fail_unless(xhash_get(ht, "10") == NULL, "item not deleted"); ++ xhash_delete_str(ht, "10"); ++ fail_unless(xhash_get_str(ht, "10") == NULL, "item not deleted"); + fail_unless(xhash_count(ht) == (g_hashableslen-1), "bad count"); + /* left edge */ +- xhash_delete(ht, "0"); +- fail_unless(xhash_get(ht, "0") == NULL, "item not deleted"); ++ xhash_delete_str(ht, "0"); ++ fail_unless(xhash_get_str(ht, "0") == NULL, "item not deleted"); + fail_unless(xhash_count(ht) == (g_hashableslen-2), "bad count"); + /* right edge */ + snprintf(buffer, sizeof(buffer), "%u", (g_hashableslen-2)); +- xhash_delete(ht, buffer); +- fail_unless(xhash_get(ht, "0") == NULL, "item not deleted"); ++ xhash_delete_str(ht, buffer); ++ fail_unless(xhash_get_str(ht, "0") == NULL, "item not deleted"); + fail_unless(xhash_count(ht) == (g_hashableslen-3), "bad count"); + + result = test_delete_helper(); +commit b0db3f0fbfdfc9a7820f24c4b30adee696dc863a +Author: Morris Jette +Date: Fri Jun 7 07:57:26 2019 -0600 + + Modify "make check" to validate v1808 un/pack logic + + bug 7197 + +diff --git a/testsuite/slurm_unit/common/slurmdb_pack/pack_federation_rec-test.c b/testsuite/slurm_unit/common/slurmdb_pack/pack_federation_rec-test.c +index d068fef66d..bbeeefc4a7 100644 +--- a/testsuite/slurm_unit/common/slurmdb_pack/pack_federation_rec-test.c ++++ b/testsuite/slurm_unit/common/slurmdb_pack/pack_federation_rec-test.c +@@ -32,29 +32,26 @@ START_TEST(invalid_protocol) + } + END_TEST + +-START_TEST(pack_1702_null_federation_rec) ++START_TEST(pack_1711_null_federation_rec) + { + int rc; + Buf buf = init_buf(1024); +- slurmdb_federation_rec_t pack_fr = {0}; + + slurmdb_pack_federation_rec(NULL, SLURM_MIN_PROTOCOL_VERSION, buf); + + set_buf_offset(buf, 0); + +- slurmdb_federation_rec_t *unpack_fr; ++ slurmdb_federation_rec_t *unpack_fr = NULL; + rc = slurmdb_unpack_federation_rec((void **)&unpack_fr, SLURM_MIN_PROTOCOL_VERSION, buf); +- ck_assert(rc == SLURM_SUCCESS); +- ck_assert(pack_fr.name == unpack_fr->name); +- ck_assert(pack_fr.flags == unpack_fr->flags); +- ck_assert(pack_fr.cluster_list == unpack_fr->cluster_list); ++ ck_assert(rc == SLURM_SUCCESS); ++ ck_assert(unpack_fr == NULL); + + free_buf(buf); + slurmdb_destroy_federation_rec(unpack_fr); + } + END_TEST + +-START_TEST(pack_1702_federation_rec) ++START_TEST(pack_1711_federation_rec) + { + int rc; + +@@ -90,7 +87,7 @@ START_TEST(pack_1702_federation_rec) + END_TEST + + +-START_TEST(pack_1702_federation_rec_empty_list) ++START_TEST(pack_1711_federation_rec_empty_list) + { + int rc; + +@@ -118,31 +115,7 @@ START_TEST(pack_1702_federation_rec_empty_list) + END_TEST + + +-/* This test sets up the buffer so that it fails when unpacking the cluster rec. +- */ +-START_TEST(pack_1702_federation_rec_fail) +-{ +- int rc; +- char *name = xstrdup("Saint Augustine"); +- Buf buf = init_buf(18*sizeof(uint32_t)); +- packstr(name, buf); +- pack32(7, buf); +- pack32(1, buf); +- +- set_buf_offset(buf, 0); +- +- slurmdb_federation_rec_t *unpack_fr; +- rc = slurmdb_unpack_federation_rec((void **)&unpack_fr, SLURM_MIN_PROTOCOL_VERSION, buf); +- ck_assert_int_eq(rc, SLURM_ERROR); +- +- free_buf(buf); +- xfree(name); +-} +-END_TEST +- +- +-/* 17.11 */ +-START_TEST(pack_1711_null_federation_rec) ++START_TEST(pack_1808_null_federation_rec) + { + int rc; + Buf buf = init_buf(1024); +@@ -161,7 +134,7 @@ START_TEST(pack_1711_null_federation_rec) + } + END_TEST + +-START_TEST(pack_1711_federation_rec) ++START_TEST(pack_1808_federation_rec) + { + int rc; + +@@ -197,7 +170,7 @@ START_TEST(pack_1711_federation_rec) + END_TEST + + +-START_TEST(pack_1711_federation_rec_empty_list) ++START_TEST(pack_1808_federation_rec_empty_list) + { + int rc; + +@@ -235,15 +208,14 @@ Suite* suite(void) + Suite* s = suite_create("Pack slurmdb_federation_rec_t"); + TCase* tc_core = tcase_create("Pack slurmdb_federation_rec_t"); + tcase_add_test(tc_core, invalid_protocol); +- tcase_add_test(tc_core, pack_1702_federation_rec); +- //tcase_add_test(tc_core, pack_1702_null_federation_rec); +- tcase_add_test(tc_core, pack_1702_federation_rec_empty_list); +- //tcase_add_test(tc_core, pack_1702_federation_rec_fail); +- + tcase_add_test(tc_core, pack_1711_federation_rec); + tcase_add_test(tc_core, pack_1711_null_federation_rec); + tcase_add_test(tc_core, pack_1711_federation_rec_empty_list); + ++ tcase_add_test(tc_core, pack_1808_federation_rec); ++ tcase_add_test(tc_core, pack_1808_null_federation_rec); ++ tcase_add_test(tc_core, pack_1808_federation_rec_empty_list); ++ + suite_add_tcase(s, tc_core); + return s; + } +commit 8aade6d1a3b25ee43b466f7c5624f5199b7bf0ec +Author: Morris Jette +Date: Fri Jun 7 08:14:50 2019 -0600 + + Rename some "make check" functions names to be generic + + bug 7197 + +diff --git a/testsuite/slurm_unit/common/slurmdb_pack/pack_federation_rec-test.c b/testsuite/slurm_unit/common/slurmdb_pack/pack_federation_rec-test.c +index bbeeefc4a7..6a48164027 100644 +--- a/testsuite/slurm_unit/common/slurmdb_pack/pack_federation_rec-test.c ++++ b/testsuite/slurm_unit/common/slurmdb_pack/pack_federation_rec-test.c +@@ -32,7 +32,7 @@ START_TEST(invalid_protocol) + } + END_TEST + +-START_TEST(pack_1711_null_federation_rec) ++START_TEST(pack_back2_null_federation_rec) + { + int rc; + Buf buf = init_buf(1024); +@@ -51,7 +51,7 @@ START_TEST(pack_1711_null_federation_rec) + } + END_TEST + +-START_TEST(pack_1711_federation_rec) ++START_TEST(pack_back2_federation_rec) + { + int rc; + +@@ -87,7 +87,7 @@ START_TEST(pack_1711_federation_rec) + END_TEST + + +-START_TEST(pack_1711_federation_rec_empty_list) ++START_TEST(pack_back2_federation_rec_empty_list) + { + int rc; + +@@ -115,7 +115,7 @@ START_TEST(pack_1711_federation_rec_empty_list) + END_TEST + + +-START_TEST(pack_1808_null_federation_rec) ++START_TEST(pack_back1_null_federation_rec) + { + int rc; + Buf buf = init_buf(1024); +@@ -134,7 +134,7 @@ START_TEST(pack_1808_null_federation_rec) + } + END_TEST + +-START_TEST(pack_1808_federation_rec) ++START_TEST(pack_back1_federation_rec) + { + int rc; + +@@ -170,7 +170,7 @@ START_TEST(pack_1808_federation_rec) + END_TEST + + +-START_TEST(pack_1808_federation_rec_empty_list) ++START_TEST(pack_back1_federation_rec_empty_list) + { + int rc; + +@@ -208,13 +208,13 @@ Suite* suite(void) + Suite* s = suite_create("Pack slurmdb_federation_rec_t"); + TCase* tc_core = tcase_create("Pack slurmdb_federation_rec_t"); + tcase_add_test(tc_core, invalid_protocol); +- tcase_add_test(tc_core, pack_1711_federation_rec); +- tcase_add_test(tc_core, pack_1711_null_federation_rec); +- tcase_add_test(tc_core, pack_1711_federation_rec_empty_list); ++ tcase_add_test(tc_core, pack_back2_federation_rec); ++ tcase_add_test(tc_core, pack_back2_null_federation_rec); ++ tcase_add_test(tc_core, pack_back2_federation_rec_empty_list); + +- tcase_add_test(tc_core, pack_1808_federation_rec); +- tcase_add_test(tc_core, pack_1808_null_federation_rec); +- tcase_add_test(tc_core, pack_1808_federation_rec_empty_list); ++ tcase_add_test(tc_core, pack_back1_federation_rec); ++ tcase_add_test(tc_core, pack_back1_null_federation_rec); ++ tcase_add_test(tc_core, pack_back1_federation_rec_empty_list); + + suite_add_tcase(s, tc_core); + return s; +commit 549b1a3e6a8f6a677228209a2520595ffb42f98c +Author: Morris Jette +Date: Fri Jun 7 09:50:14 2019 -0600 + + Make check tests made more generic + +diff --git a/testsuite/slurm_unit/common/slurm_protocol_pack/pack_job_alloc_info_msg-test.c b/testsuite/slurm_unit/common/slurm_protocol_pack/pack_job_alloc_info_msg-test.c +index ca95f636a8..85adb59ed1 100644 +--- a/testsuite/slurm_unit/common/slurm_protocol_pack/pack_job_alloc_info_msg-test.c ++++ b/testsuite/slurm_unit/common/slurm_protocol_pack/pack_job_alloc_info_msg-test.c +@@ -33,7 +33,7 @@ START_TEST(pack_null_req) + END_TEST + #endif + +-START_TEST(pack_1702_req_null_ptrs) ++START_TEST(pack_back2_req_null_ptrs) + { + int rc; + Buf buf = init_buf(1024); +@@ -59,7 +59,7 @@ START_TEST(pack_1702_req_null_ptrs) + unpack_req = (job_alloc_info_msg_t *)msg.data; + ck_assert_int_eq(rc, SLURM_SUCCESS); + ck_assert(unpack_req); +- //ck_assert(!unpack_req->req_cluster); /* >= 17.11 */ ++ ck_assert(!unpack_req->req_cluster); + ck_assert_uint_eq(unpack_req->job_id, pack_req.job_id); + + free_buf(buf); +@@ -67,7 +67,7 @@ START_TEST(pack_1702_req_null_ptrs) + } + END_TEST + +-START_TEST(pack_1702_req) ++START_TEST(pack_back2_req) + { + int rc; + Buf buf = init_buf(1024); +@@ -103,7 +103,7 @@ START_TEST(pack_1702_req) + } + END_TEST + +-START_TEST(pack_1711_req_null_ptrs) ++START_TEST(pack_back1_req_null_ptrs) + { + int rc; + Buf buf = init_buf(1024); +@@ -136,7 +136,7 @@ START_TEST(pack_1711_req_null_ptrs) + } + END_TEST + +-START_TEST(pack_1711_req) ++START_TEST(pack_back1_req) + { + int rc; + Buf buf = init_buf(1024); +@@ -188,10 +188,10 @@ Suite* suite(SRunner *sr) + if (srunner_fork_status(sr) != CK_NOFORK) + tcase_add_test_raise_signal(tc_core, pack_null_req, SIGABRT); + #endif +- tcase_add_test(tc_core, pack_1702_req_null_ptrs); +- tcase_add_test(tc_core, pack_1702_req); +- tcase_add_test(tc_core, pack_1711_req_null_ptrs); +- tcase_add_test(tc_core, pack_1711_req); ++ tcase_add_test(tc_core, pack_back2_req_null_ptrs); ++ tcase_add_test(tc_core, pack_back2_req); ++ tcase_add_test(tc_core, pack_back1_req_null_ptrs); ++ tcase_add_test(tc_core, pack_back1_req); + suite_add_tcase(s, tc_core); + return s; + } +diff --git a/testsuite/slurm_unit/common/slurmdb_pack/pack_cluster_rec-test.c b/testsuite/slurm_unit/common/slurmdb_pack/pack_cluster_rec-test.c +index c58149b48f..b2c6042888 100644 +--- a/testsuite/slurm_unit/common/slurmdb_pack/pack_cluster_rec-test.c ++++ b/testsuite/slurm_unit/common/slurmdb_pack/pack_cluster_rec-test.c +@@ -20,7 +20,7 @@ START_TEST(invalid_protocol) + } + END_TEST + +-START_TEST(pack_1702_null_rec) ++START_TEST(pack_back2_null_rec) + { + int rc; + slurmdb_cluster_rec_t pack_rec; +@@ -64,7 +64,7 @@ START_TEST(pack_1702_null_rec) + } + END_TEST + +-START_TEST(pack_1702_rec) ++START_TEST(pack_back2_rec) + { + int rc; + Buf buf = init_buf(1024); +@@ -85,6 +85,9 @@ START_TEST(pack_1702_rec) + pack_rec.name = xstrdup("name"); + pack_rec.nodes = xstrdup("nodes"); + pack_rec.plugin_id_select = 8; ++ pack_rec.fed.feature_list = list_create(slurm_destroy_char); ++ slurm_addto_mode_char_list(pack_rec.fed.feature_list, "a,b,c", 0); ++ ck_assert_int_eq(list_count(pack_rec.fed.feature_list), 3); + + /* will be tested separately. */ + pack_rec.root_assoc = NULL; +@@ -126,9 +129,14 @@ START_TEST(pack_1702_rec) + ck_assert_str_eq(pack_rec.name, unpack_rec->name); + ck_assert_str_eq(pack_rec.nodes, unpack_rec->nodes); + +- /* 17.11 */ +- ck_assert(pack_rec.fed.feature_list == unpack_rec->fed.feature_list); +- ++ char *feature; ++ ck_assert_int_eq(list_count(pack_rec.fed.feature_list), list_count(unpack_rec->fed.feature_list)); ++ ListIterator itr = list_iterator_create(pack_rec.fed.feature_list); ++ while ((feature = list_next(itr))) { ++ if (!list_find_first(unpack_rec->fed.feature_list, slurm_find_char_in_list, feature)) ++ ck_abort_msg("Didn't find feature %s in unpacked list", ++ feature); ++ } + + FREE_NULL_LIST(pack_rec.accounting_list); + xfree(pack_rec.control_host); +@@ -140,7 +148,7 @@ START_TEST(pack_1702_rec) + } + END_TEST + +-START_TEST(pack_1702_rec_null_ptrs) ++START_TEST(pack_back2_rec_null_ptrs) + { + Buf buf = init_buf(1024); + slurmdb_cluster_rec_t pack_rec = {0}; +@@ -185,7 +193,6 @@ START_TEST(pack_1702_rec_null_ptrs) + ck_assert(pack_rec.rpc_version == unpack_rec->rpc_version); + ck_assert(pack_rec.fed.recv == unpack_rec->fed.recv); + ck_assert(pack_rec.fed.send == unpack_rec->fed.send); +- /* 17.11 */ + ck_assert(pack_rec.fed.feature_list == unpack_rec->fed.feature_list); + + free_buf(buf); +@@ -193,7 +200,7 @@ START_TEST(pack_1702_rec_null_ptrs) + } + END_TEST + +-START_TEST(pack_1711_null_rec) ++START_TEST(pack_back1_null_rec) + { + int rc; + slurmdb_cluster_rec_t pack_rec; +@@ -204,7 +211,6 @@ START_TEST(pack_1711_null_rec) + pack_rec.fed.state = 0; + pack_rec.dimensions = 1; + pack_rec.plugin_id_select = NO_VAL; +- + slurmdb_pack_cluster_rec(NULL, SLURM_ONE_BACK_PROTOCOL_VERSION, buf); + + set_buf_offset(buf, 0); +@@ -218,7 +224,6 @@ START_TEST(pack_1711_null_rec) + ck_assert(pack_rec.nodes == unpack_rec->nodes); + ck_assert(pack_rec.fed.recv == unpack_rec->fed.recv); + ck_assert(pack_rec.fed.send == unpack_rec->fed.send); +- /* 17.11 */ + ck_assert(pack_rec.fed.feature_list == unpack_rec->fed.feature_list); + + /* root_assoc gets unpacked into a empty structure */ +@@ -237,7 +242,7 @@ START_TEST(pack_1711_null_rec) + } + END_TEST + +-START_TEST(pack_1711_rec) ++START_TEST(pack_back1_rec) + { + int rc; + Buf buf = init_buf(1024); +@@ -302,7 +307,6 @@ START_TEST(pack_1711_rec) + ck_assert_str_eq(pack_rec.name, unpack_rec->name); + ck_assert_str_eq(pack_rec.nodes, unpack_rec->nodes); + +- /* 17.11 */ + char *feature; + ck_assert_int_eq(list_count(pack_rec.fed.feature_list), list_count(unpack_rec->fed.feature_list)); + ListIterator itr = list_iterator_create(pack_rec.fed.feature_list); +@@ -322,7 +326,7 @@ START_TEST(pack_1711_rec) + } + END_TEST + +-START_TEST(pack_1711_rec_null_ptrs) ++START_TEST(pack_back1_rec_null_ptrs) + { + Buf buf = init_buf(1024); + slurmdb_cluster_rec_t pack_rec = {0}; +@@ -367,7 +371,6 @@ START_TEST(pack_1711_rec_null_ptrs) + ck_assert(pack_rec.rpc_version == unpack_rec->rpc_version); + ck_assert(pack_rec.fed.recv == unpack_rec->fed.recv); + ck_assert(pack_rec.fed.send == unpack_rec->fed.send); +- /* 17.11 */ + ck_assert(pack_rec.fed.feature_list == unpack_rec->fed.feature_list); + + free_buf(buf); +@@ -385,13 +388,13 @@ Suite* suite(void) + TCase* tc_core = tcase_create("Pack slurmdb_cluster_rec_t"); + tcase_add_test(tc_core, invalid_protocol); + +- tcase_add_test(tc_core, pack_1711_null_rec); +- tcase_add_test(tc_core, pack_1711_rec); +- tcase_add_test(tc_core, pack_1711_rec_null_ptrs); ++ tcase_add_test(tc_core, pack_back1_null_rec); ++ tcase_add_test(tc_core, pack_back1_rec); ++ tcase_add_test(tc_core, pack_back1_rec_null_ptrs); + +- tcase_add_test(tc_core, pack_1702_null_rec); +- tcase_add_test(tc_core, pack_1702_rec); +- tcase_add_test(tc_core, pack_1702_rec_null_ptrs); ++ tcase_add_test(tc_core, pack_back2_null_rec); ++ tcase_add_test(tc_core, pack_back2_rec); ++ tcase_add_test(tc_core, pack_back2_rec_null_ptrs); + + suite_add_tcase(s, tc_core); + return s; diff --git a/slurm_to_python3.patch b/slurm_to_python3.patch index fdfcbe8..c60e941 100644 --- a/slurm_to_python3.patch +++ b/slurm_to_python3.patch @@ -38,16 +38,6 @@ index 54909096b9..93433d6fa3 100755 import re import sys -diff --git a/testsuite/expect/driveregress.py b/testsuite/expect/driveregress.py -index 8019615953..4e7eb7ca0f 100755 ---- a/testsuite/expect/driveregress.py -+++ b/testsuite/expect/driveregress.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - - ############################################################################ - # Copyright (C) 2011-2013 SchedMD LLC diff --git a/testsuite/expect/regression.py b/testsuite/expect/regression.py index 938aecc154..ea64c7cce0 100755 --- a/testsuite/expect/regression.py diff --git a/sources b/sources index dff51b9..bcddb1a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (slurm-18.08.7.tar.bz2) = d0047086f1b716877cc5bb39539bf96a8fd08b1851c85fd85112c6432c1ce2a0f29fc9dd8803094c8fa44d063cec5f417e6bed231b6d338934ff4b48424a5a93 +SHA512 (slurm-19.05.0.tar.bz2) = f91efbd8c96c5c25dcf7c3f73f61ab9b5d591a554447e5a7db0346ace2e9a1053bebce5f16e9d15c23d78743319997aaac51f6d5bceda7cfaa4877a6f439cff1