Compare commits

...

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

20 changed files with 1187 additions and 359 deletions

11
.gitignore vendored
View File

@ -1 +1,10 @@
SOURCES/nvml-1.5.tar.gz
/pmdk-1.8.tar.gz
/pmdk-1.9.tar.gz
/pmdk-1.9.1.tar.gz
/pmdk-1.9.2.tar.gz
/pmdk-1.10.tar.gz
/pmdk-1.10-man.tar.gz
/pmdk-1.10.1.tar.gz
/pmdk-1.10.1-man.tar.gz
/pmdk-1.12.1.tar.gz
/pmdk-1.12.1-man.tar.gz

View File

@ -1 +0,0 @@
e85cbdf54b195ad22bf7c9df40f7cf5c958af216 SOURCES/nvml-1.5.tar.gz

View File

@ -0,0 +1,26 @@
From 57a7e50be71e2677a5cb1a84b5f462d40182dee8 Mon Sep 17 00:00:00 2001
From: Adam Borowski <kilobyte@angband.pl>
Date: Fri, 29 Jan 2021 11:48:00 +0100
Subject: [PATCH] common: fix a mismatch between prototype and body
It makes gcc-11 complain.
---
src/common/uuid.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/common/uuid.c b/src/common/uuid.c
index 94fdd737c..da59208fb 100644
--- a/src/common/uuid.c
+++ b/src/common/uuid.c
@@ -53,7 +53,7 @@ util_uuid_to_string(const uuid_t u, char *buf)
* f81d4fae-7dec-11d0-a765-00a0c91e6bf6
*/
int
-util_uuid_from_string(const char *uuid, struct uuid *ud)
+util_uuid_from_string(const char uuid[POOL_HDR_UUID_STR_LEN], struct uuid *ud)
{
if (strlen(uuid) != 36) {
LOG(2, "invalid uuid string");
--
2.27.0

View File

@ -0,0 +1,491 @@
From e4228cd230f846e55407687a9553ac4b7f56498b Mon Sep 17 00:00:00 2001
From: Weronika Lewandowska <weronika.lewandowska@intel.com>
Date: Thu, 6 Aug 2020 13:39:34 +0200
Subject: [PATCH] test: fix symbol format in the scope tests
---
src/test/scope/out13.log.match | 74 +++++------
src/test/scope/out2.log.match | 50 ++++----
src/test/scope/out3.log.match | 36 +++---
src/test/scope/out4.log.match | 36 +++---
src/test/scope/out5.log.match | 222 ++++++++++++++++-----------------
src/test/scope/out6.log.match | 26 ++--
6 files changed, 222 insertions(+), 222 deletions(-)
diff --git a/src/test/scope/out13.log.match b/src/test/scope/out13.log.match
index 5fab789af..925fa482d 100644
--- a/src/test/scope/out13.log.match
+++ b/src/test/scope/out13.log.match
@@ -1,37 +1,37 @@
-pmem2_badblock_clear
-pmem2_badblock_context_delete
-pmem2_badblock_context_new
-pmem2_badblock_next
-pmem2_config_clear_address
-pmem2_config_delete
-pmem2_config_new
-pmem2_config_set_address
-pmem2_config_set_length
-pmem2_config_set_offset
-pmem2_config_set_protection
-pmem2_config_set_required_store_granularity
-pmem2_config_set_sharing
-pmem2_config_set_vm_reservation
-pmem2_deep_flush
-pmem2_errormsg
-pmem2_get_drain_fn
-pmem2_get_flush_fn
-pmem2_get_memcpy_fn
-pmem2_get_memmove_fn
-pmem2_get_memset_fn
-pmem2_get_persist_fn
-pmem2_map
-pmem2_map_get_address
-pmem2_map_get_size
-pmem2_map_get_store_granularity
-pmem2_perror
-pmem2_source_alignment
-pmem2_source_delete
-pmem2_source_device_id
-pmem2_source_device_usc
-pmem2_source_from_anon
-pmem2_source_from_fd
-pmem2_source_size
-pmem2_unmap
-pmem2_vm_reservation_delete
-pmem2_vm_reservation_new
+pmem2_badblock_clear$(nW)
+pmem2_badblock_context_delete$(nW)
+pmem2_badblock_context_new$(nW)
+pmem2_badblock_next$(nW)
+pmem2_config_clear_address$(nW)
+pmem2_config_delete$(nW)
+pmem2_config_new$(nW)
+pmem2_config_set_address$(nW)
+pmem2_config_set_length$(nW)
+pmem2_config_set_offset$(nW)
+pmem2_config_set_protection$(nW)
+pmem2_config_set_required_store_granularity$(nW)
+pmem2_config_set_sharing$(nW)
+pmem2_config_set_vm_reservation$(nW)
+pmem2_deep_flush$(nW)
+pmem2_errormsg$(nW)
+pmem2_get_drain_fn$(nW)
+pmem2_get_flush_fn$(nW)
+pmem2_get_memcpy_fn$(nW)
+pmem2_get_memmove_fn$(nW)
+pmem2_get_memset_fn$(nW)
+pmem2_get_persist_fn$(nW)
+pmem2_map$(nW)
+pmem2_map_get_address$(nW)
+pmem2_map_get_size$(nW)
+pmem2_map_get_store_granularity$(nW)
+pmem2_perror$(nW)
+pmem2_source_alignment$(nW)
+pmem2_source_delete$(nW)
+pmem2_source_device_id$(nW)
+pmem2_source_device_usc$(nW)
+pmem2_source_from_anon$(nW)
+pmem2_source_from_fd$(nW)
+pmem2_source_size$(nW)
+pmem2_unmap$(nW)
+pmem2_vm_reservation_delete$(nW)
+pmem2_vm_reservation_new$(nW)
diff --git a/src/test/scope/out2.log.match b/src/test/scope/out2.log.match
index 7e7331180..50225a08d 100644
--- a/src/test/scope/out2.log.match
+++ b/src/test/scope/out2.log.match
@@ -1,25 +1,25 @@
-pmem_check_version
-pmem_deep_drain
-pmem_deep_flush
-pmem_deep_persist
-pmem_drain
-pmem_errormsg
-$(OPT)pmem_fault_injection_enabled
-pmem_flush
-pmem_has_auto_flush
-pmem_has_hw_drain
-$(OPT)pmem_inject_fault_at
-pmem_is_pmem
-pmem_map_file
-pmem_memcpy
-pmem_memcpy_nodrain
-pmem_memcpy_persist
-pmem_memmove
-pmem_memmove_nodrain
-pmem_memmove_persist
-pmem_memset
-pmem_memset_nodrain
-pmem_memset_persist
-pmem_msync
-pmem_persist
-pmem_unmap
+pmem_check_version$(nW)
+pmem_deep_drain$(nW)
+pmem_deep_flush$(nW)
+pmem_deep_persist$(nW)
+pmem_drain$(nW)
+pmem_errormsg$(nW)
+$(OPT)pmem_fault_injection_enabled$(nW)
+pmem_flush$(nW)
+pmem_has_auto_flush$(nW)
+pmem_has_hw_drain$(nW)
+$(OPT)pmem_inject_fault_at$(nW)
+pmem_is_pmem$(nW)
+pmem_map_file$(nW)
+pmem_memcpy$(nW)
+pmem_memcpy_nodrain$(nW)
+pmem_memcpy_persist$(nW)
+pmem_memmove$(nW)
+pmem_memmove_nodrain$(nW)
+pmem_memmove_persist$(nW)
+pmem_memset$(nW)
+pmem_memset_nodrain$(nW)
+pmem_memset_persist$(nW)
+pmem_msync$(nW)
+pmem_persist$(nW)
+pmem_unmap$(nW)
diff --git a/src/test/scope/out3.log.match b/src/test/scope/out3.log.match
index 179ac11de..74ce8a329 100644
--- a/src/test/scope/out3.log.match
+++ b/src/test/scope/out3.log.match
@@ -1,18 +1,18 @@
-pmemlog_append
-pmemlog_appendv
-pmemlog_check
-pmemlog_check_version
-pmemlog_close
-pmemlog_create
-pmemlog_ctl_exec
-pmemlog_ctl_get
-pmemlog_ctl_set
-pmemlog_errormsg
-$(OPT)pmemlog_fault_injection_enabled
-$(OPT)pmemlog_inject_fault_at
-pmemlog_nbyte
-pmemlog_open
-pmemlog_rewind
-pmemlog_set_funcs
-pmemlog_tell
-pmemlog_walk
+pmemlog_append$(nW)
+pmemlog_appendv$(nW)
+pmemlog_check$(nW)
+pmemlog_check_version$(nW)
+pmemlog_close$(nW)
+pmemlog_create$(nW)
+pmemlog_ctl_exec$(nW)
+pmemlog_ctl_get$(nW)
+pmemlog_ctl_set$(nW)
+pmemlog_errormsg$(nW)
+$(OPT)pmemlog_fault_injection_enabled$(nW)
+$(OPT)pmemlog_inject_fault_at$(nW)
+pmemlog_nbyte$(nW)
+pmemlog_open$(nW)
+pmemlog_rewind$(nW)
+pmemlog_set_funcs$(nW)
+pmemlog_tell$(nW)
+pmemlog_walk$(nW)
diff --git a/src/test/scope/out4.log.match b/src/test/scope/out4.log.match
index a5ff56c55..3c3fc9bc3 100644
--- a/src/test/scope/out4.log.match
+++ b/src/test/scope/out4.log.match
@@ -1,18 +1,18 @@
-pmemblk_bsize
-pmemblk_check
-pmemblk_check_version
-pmemblk_close
-pmemblk_create
-pmemblk_ctl_exec
-pmemblk_ctl_get
-pmemblk_ctl_set
-pmemblk_errormsg
-$(OPT)pmemblk_fault_injection_enabled
-$(OPT)pmemblk_inject_fault_at
-pmemblk_nblock
-pmemblk_open
-pmemblk_read
-pmemblk_set_error
-pmemblk_set_funcs
-pmemblk_set_zero
-pmemblk_write
+pmemblk_bsize$(nW)
+pmemblk_check$(nW)
+pmemblk_check_version$(nW)
+pmemblk_close$(nW)
+pmemblk_create$(nW)
+pmemblk_ctl_exec$(nW)
+pmemblk_ctl_get$(nW)
+pmemblk_ctl_set$(nW)
+pmemblk_errormsg$(nW)
+$(OPT)pmemblk_fault_injection_enabled$(nW)
+$(OPT)pmemblk_inject_fault_at$(nW)
+pmemblk_nblock$(nW)
+pmemblk_open$(nW)
+pmemblk_read$(nW)
+pmemblk_set_error$(nW)
+pmemblk_set_funcs$(nW)
+pmemblk_set_zero$(nW)
+pmemblk_write$(nW)
diff --git a/src/test/scope/out5.log.match b/src/test/scope/out5.log.match
index 4506d9b43..3ad10d144 100644
--- a/src/test/scope/out5.log.match
+++ b/src/test/scope/out5.log.match
@@ -1,111 +1,111 @@
-_pobj_cache_invalidate
-_pobj_cached_pool
-_pobj_debug_notice
-pmemobj_alloc
-pmemobj_alloc_usable_size
-pmemobj_cancel
-pmemobj_check
-pmemobj_check_version
-pmemobj_close
-pmemobj_cond_broadcast
-pmemobj_cond_signal
-pmemobj_cond_timedwait
-pmemobj_cond_wait
-pmemobj_cond_zero
-pmemobj_create
-pmemobj_ctl_exec
-pmemobj_ctl_get
-pmemobj_ctl_set
-pmemobj_defer_free
-pmemobj_defrag
-pmemobj_direct
-pmemobj_drain
-pmemobj_errormsg
-$(OPT)pmemobj_fault_injection_enabled
-pmemobj_first
-pmemobj_flush
-pmemobj_free
-pmemobj_get_user_data
-$(OPT)pmemobj_inject_fault_at
-pmemobj_list_insert
-pmemobj_list_insert_new
-pmemobj_list_move
-pmemobj_list_remove
-pmemobj_memcpy
-pmemobj_memcpy_persist
-pmemobj_memmove
-pmemobj_memset
-pmemobj_memset_persist
-pmemobj_mutex_lock
-pmemobj_mutex_timedlock
-pmemobj_mutex_trylock
-pmemobj_mutex_unlock
-pmemobj_mutex_zero
-pmemobj_next
-pmemobj_oid
-pmemobj_open
-pmemobj_persist
-pmemobj_pool_by_oid
-pmemobj_pool_by_ptr
-pmemobj_publish
-pmemobj_realloc
-pmemobj_reserve
-pmemobj_root
-pmemobj_root_construct
-pmemobj_root_size
-pmemobj_rwlock_rdlock
-pmemobj_rwlock_timedrdlock
-pmemobj_rwlock_timedwrlock
-pmemobj_rwlock_tryrdlock
-pmemobj_rwlock_trywrlock
-pmemobj_rwlock_unlock
-pmemobj_rwlock_wrlock
-pmemobj_rwlock_zero
-pmemobj_set_funcs
-pmemobj_set_user_data
-pmemobj_set_value
-pmemobj_strdup
-pmemobj_tx_abort
-pmemobj_tx_add_range
-pmemobj_tx_add_range_direct
-pmemobj_tx_alloc
-pmemobj_tx_begin
-pmemobj_tx_commit
-pmemobj_tx_end
-pmemobj_tx_errno
-pmemobj_tx_free
-pmemobj_tx_get_failure_behavior
-pmemobj_tx_get_user_data
-pmemobj_tx_lock
-pmemobj_tx_log_append_buffer
-pmemobj_tx_log_auto_alloc
-pmemobj_tx_log_intents_max_size
-pmemobj_tx_log_snapshots_max_size
-pmemobj_tx_process
-pmemobj_tx_publish
-pmemobj_tx_realloc
-pmemobj_tx_set_failure_behavior
-pmemobj_tx_set_user_data
-pmemobj_tx_stage
-pmemobj_tx_strdup
-pmemobj_tx_wcsdup
-pmemobj_tx_xadd_range
-pmemobj_tx_xadd_range_direct
-pmemobj_tx_xalloc
-pmemobj_tx_xfree
-pmemobj_tx_xlock
-pmemobj_tx_xlog_append_buffer
-pmemobj_tx_xpublish
-pmemobj_tx_xstrdup
-pmemobj_tx_xwcsdup
-pmemobj_tx_zalloc
-pmemobj_tx_zrealloc
-pmemobj_type_num
-pmemobj_volatile
-pmemobj_wcsdup
-pmemobj_xalloc
-pmemobj_xflush
-pmemobj_xpersist
-pmemobj_xreserve
-pmemobj_zalloc
-pmemobj_zrealloc
+_pobj_cache_invalidate$(nW)
+_pobj_cached_pool$(nW)
+_pobj_debug_notice$(nW)
+pmemobj_alloc$(nW)
+pmemobj_alloc_usable_size$(nW)
+pmemobj_cancel$(nW)
+pmemobj_check$(nW)
+pmemobj_check_version$(nW)
+pmemobj_close$(nW)
+pmemobj_cond_broadcast$(nW)
+pmemobj_cond_signal$(nW)
+pmemobj_cond_timedwait$(nW)
+pmemobj_cond_wait$(nW)
+pmemobj_cond_zero$(nW)
+pmemobj_create$(nW)
+pmemobj_ctl_exec$(nW)
+pmemobj_ctl_get$(nW)
+pmemobj_ctl_set$(nW)
+pmemobj_defer_free$(nW)
+pmemobj_defrag$(nW)
+pmemobj_direct$(nW)
+pmemobj_drain$(nW)
+pmemobj_errormsg$(nW)
+$(OPT)pmemobj_fault_injection_enabled$(nW)
+pmemobj_first$(nW)
+pmemobj_flush$(nW)
+pmemobj_free$(nW)
+pmemobj_get_user_data$(nW)
+$(OPT)pmemobj_inject_fault_at$(nW)
+pmemobj_list_insert$(nW)
+pmemobj_list_insert_new$(nW)
+pmemobj_list_move$(nW)
+pmemobj_list_remove$(nW)
+pmemobj_memcpy$(nW)
+pmemobj_memcpy_persist$(nW)
+pmemobj_memmove$(nW)
+pmemobj_memset$(nW)
+pmemobj_memset_persist$(nW)
+pmemobj_mutex_lock$(nW)
+pmemobj_mutex_timedlock$(nW)
+pmemobj_mutex_trylock$(nW)
+pmemobj_mutex_unlock$(nW)
+pmemobj_mutex_zero$(nW)
+pmemobj_next$(nW)
+pmemobj_oid$(nW)
+pmemobj_open$(nW)
+pmemobj_persist$(nW)
+pmemobj_pool_by_oid$(nW)
+pmemobj_pool_by_ptr$(nW)
+pmemobj_publish$(nW)
+pmemobj_realloc$(nW)
+pmemobj_reserve$(nW)
+pmemobj_root$(nW)
+pmemobj_root_construct$(nW)
+pmemobj_root_size$(nW)
+pmemobj_rwlock_rdlock$(nW)
+pmemobj_rwlock_timedrdlock$(nW)
+pmemobj_rwlock_timedwrlock$(nW)
+pmemobj_rwlock_tryrdlock$(nW)
+pmemobj_rwlock_trywrlock$(nW)
+pmemobj_rwlock_unlock$(nW)
+pmemobj_rwlock_wrlock$(nW)
+pmemobj_rwlock_zero$(nW)
+pmemobj_set_funcs$(nW)
+pmemobj_set_user_data$(nW)
+pmemobj_set_value$(nW)
+pmemobj_strdup$(nW)
+pmemobj_tx_abort$(nW)
+pmemobj_tx_add_range$(nW)
+pmemobj_tx_add_range_direct$(nW)
+pmemobj_tx_alloc$(nW)
+pmemobj_tx_begin$(nW)
+pmemobj_tx_commit$(nW)
+pmemobj_tx_end$(nW)
+pmemobj_tx_errno$(nW)
+pmemobj_tx_free$(nW)
+pmemobj_tx_get_failure_behavior$(nW)
+pmemobj_tx_get_user_data$(nW)
+pmemobj_tx_lock$(nW)
+pmemobj_tx_log_append_buffer$(nW)
+pmemobj_tx_log_auto_alloc$(nW)
+pmemobj_tx_log_intents_max_size$(nW)
+pmemobj_tx_log_snapshots_max_size$(nW)
+pmemobj_tx_process$(nW)
+pmemobj_tx_publish$(nW)
+pmemobj_tx_realloc$(nW)
+pmemobj_tx_set_failure_behavior$(nW)
+pmemobj_tx_set_user_data$(nW)
+pmemobj_tx_stage$(nW)
+pmemobj_tx_strdup$(nW)
+pmemobj_tx_wcsdup$(nW)
+pmemobj_tx_xadd_range$(nW)
+pmemobj_tx_xadd_range_direct$(nW)
+pmemobj_tx_xalloc$(nW)
+pmemobj_tx_xfree$(nW)
+pmemobj_tx_xlock$(nW)
+pmemobj_tx_xlog_append_buffer$(nW)
+pmemobj_tx_xpublish$(nW)
+pmemobj_tx_xstrdup$(nW)
+pmemobj_tx_xwcsdup$(nW)
+pmemobj_tx_zalloc$(nW)
+pmemobj_tx_zrealloc$(nW)
+pmemobj_type_num$(nW)
+pmemobj_volatile$(nW)
+pmemobj_wcsdup$(nW)
+pmemobj_xalloc$(nW)
+pmemobj_xflush$(nW)
+pmemobj_xpersist$(nW)
+pmemobj_xreserve$(nW)
+pmemobj_zalloc$(nW)
+pmemobj_zrealloc$(nW)
diff --git a/src/test/scope/out6.log.match b/src/test/scope/out6.log.match
index 9778c0af5..4275c73ef 100644
--- a/src/test/scope/out6.log.match
+++ b/src/test/scope/out6.log.match
@@ -1,13 +1,13 @@
-pmempool_check
-pmempool_check_end
-pmempool_check_init
-pmempool_check_version
-pmempool_errormsg
-$(OPT)pmempool_fault_injection_enabled
-pmempool_feature_disable
-pmempool_feature_enable
-pmempool_feature_query
-$(OPT)pmempool_inject_fault_at
-pmempool_rm
-pmempool_sync
-pmempool_transform
+pmempool_check$(nW)
+pmempool_check_end$(nW)
+pmempool_check_init$(nW)
+pmempool_check_version$(nW)
+pmempool_errormsg$(nW)
+$(OPT)pmempool_fault_injection_enabled$(nW)
+pmempool_feature_disable$(nW)
+pmempool_feature_enable$(nW)
+pmempool_feature_query$(nW)
+$(OPT)pmempool_inject_fault_at$(nW)
+pmempool_rm$(nW)
+pmempool_sync$(nW)
+pmempool_transform$(nW)
--
2.28.0

View File

@ -0,0 +1,70 @@
From 2bfc80d85248ed0014e396c2cab4b8ffb60e470e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marcin=20=C5=9Alusarz?= <marcin.slusarz@intel.com>
Date: Tue, 18 Feb 2020 15:51:12 +0100
Subject: [PATCH] test: (py) add require_free_space
---
src/test/obj_defrag_advanced/TESTS.py | 4 ++++
src/test/unittest/context.py | 11 ++++++++---
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/test/obj_defrag_advanced/TESTS.py b/src/test/obj_defrag_advanced/TESTS.py
index 8979af4a5..daf7d8ecc 100755
--- a/src/test/obj_defrag_advanced/TESTS.py
+++ b/src/test/obj_defrag_advanced/TESTS.py
@@ -49,6 +49,8 @@ class ObjDefragAdvanced(t.BaseTest):
min_root_size = 0
def run(self, ctx):
+ ctx.require_free_space(self.pool_size)
+
path = ctx.create_holey_file(self.pool_size, 'testfile')
dump1 = 'dump1.log'
dump2 = 'dump2.log'
@@ -98,6 +100,8 @@ class ObjDefragAdvancedMt(ObjDefragAdvanced):
ncycles = 2
def run(self, ctx):
+ ctx.require_free_space(self.pool_size)
+
path = ctx.create_holey_file(self.pool_size, 'testfile')
ctx.exec('obj_defrag_advanced',
diff --git a/src/test/unittest/context.py b/src/test/unittest/context.py
index 00a35fba3..2b326ebce 100644
--- a/src/test/unittest/context.py
+++ b/src/test/unittest/context.py
@@ -1,5 +1,5 @@
#
-# Copyright 2019, Intel Corporation
+# Copyright 2019-2020, Intel Corporation
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -136,9 +136,9 @@ class ContextBase:
return int(proc.stdout)
futils.fail('Could not get size of the file, it is inaccessible or does not exist')
- def get_free_space(self):
+ def get_free_space(self, dir="."):
"""Returns free space for current file system"""
- _, _, free = shutil.disk_usage(".")
+ _, _, free = shutil.disk_usage(dir)
return free
@@ -187,6 +187,11 @@ class Context(ContextBase):
os.chmod(filepath, mode)
return filepath
+ def require_free_space(self, space):
+ if self.get_free_space(self.testdir) < space:
+ futils.skip('Not enough free space (' + str(space / 1024 / 1024) +
+ ' MiB required)')
+
def mkdirs(self, path, mode=None):
"""
Creates directory along with all parent directories required. In the
--
2.17.2

View File

@ -0,0 +1,29 @@
From 16140fa1c132316fa806e569e50fbb4938246372 Mon Sep 17 00:00:00 2001
From: Adam Borowski <kilobyte@angband.pl>
Date: Sat, 12 Dec 2020 12:46:17 +0100
Subject: [PATCH] test: util_badblock: don't pass uninitialized attr
---
src/test/util_badblock/util_badblock.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/test/util_badblock/util_badblock.c b/src/test/util_badblock/util_badblock.c
index a2274c79f..eb9aaa0aa 100644
--- a/src/test/util_badblock/util_badblock.c
+++ b/src/test/util_badblock/util_badblock.c
@@ -104,11 +104,10 @@ static void
do_open(const char *path)
{
struct pool_set *set;
- const struct pool_attr attr;
unsigned nlanes = 1;
if (util_pool_open(&set, path, MIN_PART,
- &attr, &nlanes, NULL, 0) != 0) {
+ NULL, &nlanes, NULL, 0) != 0) {
UT_FATAL("!util_pool_open: %s", path);
}
--
2.27.0

View File

@ -0,0 +1,38 @@
From 0d72150d0f1e6d52c3b8888500fbcce64c751362 Mon Sep 17 00:00:00 2001
From: "Lucas A. M. Magalhaes" <lamm@linux.ibm.com>
Date: Fri, 21 Feb 2020 09:40:28 -0300
Subject: [PATCH] test: Fix obj_zones for ppc64le
This test was timing out because of intensive page_fault
handling. By allocating more by each loop we minimize this
issue.
Signed-off-by: Lucas A. M. Magalhaes <lamm@linux.ibm.com>
---
src/test/obj_zones/obj_zones.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/test/obj_zones/obj_zones.c b/src/test/obj_zones/obj_zones.c
index c1d84268a..3cc796beb 100644
--- a/src/test/obj_zones/obj_zones.c
+++ b/src/test/obj_zones/obj_zones.c
@@ -36,6 +36,7 @@
*/
#include <stddef.h>
+#include <page_size.h>
#include "unittest.h"
@@ -104,7 +105,7 @@ test_malloc_free(const char *path)
0, S_IWUSR | S_IRUSR)) == NULL)
UT_FATAL("!pmemobj_create: %s", path);
- size_t alloc_size = 128 * 1024;
+ size_t alloc_size = PMEM_PAGESIZE * 32;
size_t max_allocs = 1000000;
PMEMoid *oid = MALLOC(sizeof(PMEMoid) * max_allocs);
size_t n = 0;
--
2.20.1

View File

@ -0,0 +1,24 @@
From ad2064dbb457482f9af9816f61ba721cc5aae126 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marcin=20=C5=9Alusarz?= <marcin.slusarz@intel.com>
Date: Wed, 26 Feb 2020 15:54:19 +0100
Subject: [PATCH] test: build obj_defrag_advanced with some optimizations
On my machine it decreases TEST3 time from 52s to 20s
and TEST5 from 30s to 11s.
---
src/test/obj_defrag_advanced/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/test/obj_defrag_advanced/Makefile b/src/test/obj_defrag_advanced/Makefile
index f2e8eda94..45fa851aa 100644
--- a/src/test/obj_defrag_advanced/Makefile
+++ b/src/test/obj_defrag_advanced/Makefile
@@ -40,4 +40,4 @@ LIBPMEMOBJ=y
include ../Makefile.inc
-CFLAGS += -DDEBUG
+CFLAGS += -DDEBUG -Og
--
2.20.1

View File

@ -0,0 +1,11 @@
--- a/Makefile
+++ b/Makefile
@@ -86,7 +86,7 @@ check-remote: require-rpmem all
test check pcheck pycheck: all
$(MAKE) -C src $@
-check pcheck pycheck: check-doc
+pcheck pycheck: check-doc
cstyle:
test -d .git && utils/check-commits.sh

View File

@ -1,21 +0,0 @@
diff -up nvml-1.5/src/Makefile.orig nvml-1.5/src/Makefile
--- nvml-1.5/src/Makefile.orig 2018-10-31 17:05:03.774754808 -0400
+++ nvml-1.5/src/Makefile 2018-10-31 17:05:03.775754811 -0400
@@ -199,7 +199,7 @@ install: all pkg-config
install -d $(PMREORDER_DESTDIR)
install -p -m 0644 $(PMREORDER_FILES) $(PMREORDER_DESTDIR)
@echo "#!/bin/sh" > $(PMREORDER_SRC)/pmreorder
- @echo "exec python3 $(PMREORDER_ROOTDIR)/pmreorder.py \$$*" >> $(PMREORDER_SRC)/pmreorder
+ @echo "exec /usr/libexec/platform-python $(PMREORDER_ROOTDIR)/pmreorder.py \$$*" >> $(PMREORDER_SRC)/pmreorder
install -d $(PMREORDER_BIN)
install -p $(PMREORDER_SRC)/pmreorder $(PMREORDER_BIN)
$(RM) $(PKG_CONFIG_FILES)
diff -up nvml-1.5/src/tools/pmreorder/pmreorder.py.orig nvml-1.5/src/tools/pmreorder/pmreorder.py
--- nvml-1.5/src/tools/pmreorder/pmreorder.py.orig 2018-10-31 17:05:23.932810923 -0400
+++ nvml-1.5/src/tools/pmreorder/pmreorder.py 2018-10-31 17:05:23.932810923 -0400
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/libexec/platform-python
#
# Copyright 2018, Intel Corporation
#

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

28
makedocs.sh Executable file
View File

@ -0,0 +1,28 @@
#!/bin/bash
# makedocs.sh: Build man pages tarball for the nvml rpm. Must be run
# for each rebase.
#
# RHEL 9 does not include pandoc, which is used by pmdk to generate man
# pages. Run this script on a system that does include pandoc, such as
# fedora or RHEL 8.
# The package is named nvml, but the upstream tarball is pmdk.
TOPDIR=${PWD}
ver=$(rhpkg --release rhel-9 verrel | cut -d- -f -2 | cut -d- -f 2)
source_dir=pmdk-${ver}
tarfile=pmdk-${ver}-man.tar.gz
rhpkg --release rhel-9 prep
pushd $source_dir
BUILD_RPMEM=n make doc
mkdir man
make -C doc install mandir=$PWD/man
cd man
tar czf ${TOPDIR}/${tarfile} .
popd
echo
echo "Don't forget to upload ${tarfile} to the lookaside repo."
echo -e "\trhpkg upload ${tarfile}"
echo "Remember to commit the sources file."

13
nvml-gcc11.patch Normal file
View File

@ -0,0 +1,13 @@
diff --git a/src/test/util_badblock/util_badblock.c b/src/test/util_badblock/util_badblock.c
index a2274c7..0ee4479 100644
--- a/src/test/util_badblock/util_badblock.c
+++ b/src/test/util_badblock/util_badblock.c
@@ -104,7 +104,7 @@ static void
do_open(const char *path)
{
struct pool_set *set;
- const struct pool_attr attr;
+ const struct pool_attr attr = { 0 };
unsigned nlanes = 1;
if (util_pool_open(&set, path, MIN_PART,

4
nvml.rpmlintrc Normal file
View File

@ -0,0 +1,4 @@
# SPELLING ERRORS
addFilter(r'spelling-error .* en_US (libpmemobj|libpmemblk|libpmemlog|librpmem|transactional|pmdk|pmem)')
addFilter(r'spelling-error .*\(en_US\) (libpmemobj|libpmemblk|libpmemlog|librpmem|transactional|pmdk|pmem)')

View File

@ -1,57 +1,75 @@
# rpmbuild options:
# --with | --without fabric
# --with | --without ndctl
# --define _testconfig <path to custom testconfig.sh>
# do not terminate build if files in the $RPM_BUILD_ROOT
# directory are not found in %%files (without fabric case)
# directory are not found in %%files (without pmemcheck case)
%define _unpackaged_files_terminate_build 0
%bcond_without fabric
# disable 'make check'
%define _skip_check 1
# by default build w/ ndctl, unless explicitly disabled
# by default build with ndctl, unless explicitly disabled
%bcond_without ndctl
%define min_libfabric_ver 1.4.2
%define min_ndctl_ver 59.2
# by default build without pmemcheck, unless explicitly enabled
# pmemcheck is not packaged by Fedora
%bcond_with pmemcheck
%define min_ndctl_ver 60.1
%define upstreamversion 1.12.1
Name: nvml
Version: 1.5
Release: 2%{?dist}
Summary: Persistent Memory Development Kit (former NVML)
Version: 1.12.1
Release: 1%{?dist}
Summary: Persistent Memory Development Kit (formerly NVML)
License: BSD
URL: http://pmem.io/pmdk
Source0: https://github.com/pmem/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
Patch0: nvml-use-platform-python.patch
Source0: https://github.com/pmem/pmdk/releases/download/%{upstreamversion}/pmdk-%{upstreamversion}.tar.gz
# RHEL 9 does not ship pandoc, so the man pages have to be generated
# on another operating system (such as fedora or RHEL 8). To do that,
# run the included makedocs.sh script on a system with pandoc.
Source1: pmdk-%{version}-man.tar.gz
# do_open passes "attr" to util_pool_open which potentially reads that object
# but do_open never initializes "attr"
# may read that object
Patch0: Makefile-bypass-check-doc-in-check.patch
Patch1: pmdk-1.12.1-use_ddebug_instead_of_debug_cflags.patch
BuildRequires: gcc
BuildRequires: make
BuildRequires: cmake
BuildRequires: glibc-devel
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: man
BuildRequires: pkgconfig
BuildRequires: doxygen
BuildRequires: gdb
BuildRequires: python3
BuildRequires: groff
%if %{with ndctl}
BuildRequires: ndctl-devel >= %{min_ndctl_ver}
BuildRequires: daxctl-devel >= %{min_ndctl_ver}
%endif
%if %{with fabric}
BuildRequires: libfabric-devel >= %{min_libfabric_ver}
%endif
# for tests
BuildRequires: gdb
BuildRequires: bc
#BuildRequires: valgrind
# Debug variants of the libraries should be filtered out of the provides.
%global __provides_exclude_from ^%{_libdir}/pmdk_debug/.*\\.so.*$
# By design, PMDK does not support any 32-bit architecture.
# Due to dependency on xmmintrin.h and some inline assembly, it can be
# compiled only for x86_64 at the moment.
# Due to dependency on some inline assembly, PMDK can be compiled only
# on these architectures:
# - x86_64
# - ppc64le (experimental)
# - aarch64 (unmaintained, supporting hardware doesn't exist?)
#
# Other 64-bit architectures could also be supported, if only there is
# a request for that, and if somebody provides the arch-specific
# implementation of the low-level routines for flushing to persistent
@ -59,10 +77,9 @@ BuildRequires: libfabric-devel >= %{min_libfabric_ver}
# https://bugzilla.redhat.com/show_bug.cgi?id=1340634
# https://bugzilla.redhat.com/show_bug.cgi?id=1340635
# https://bugzilla.redhat.com/show_bug.cgi?id=1340636
# https://bugzilla.redhat.com/show_bug.cgi?id=1340637
ExclusiveArch: x86_64
ExclusiveArch: x86_64 ppc64le
%description
The Persistent Memory Development Kit is a collection of libraries for
@ -71,14 +88,12 @@ using memory-mapped persistence, optimized specifically for persistent memory.
%package -n libpmem
Summary: Low-level persistent memory support library
Group: System Environment/Libraries
%description -n libpmem
The libpmem provides low level persistent memory support. In particular,
support for the persistent memory instructions for flushing changes
to pmem is provided.
to pmem is provided. This package provides the v1 API.
%files -n libpmem
%defattr(-,root,root,-)
%dir %{_datadir}/pmdk
%{_libdir}/libpmem.so.*
%{_datadir}/pmdk/pmdk.magic
@ -88,12 +103,11 @@ to pmem is provided.
%package -n libpmem-devel
Summary: Development files for the low-level persistent memory library
Group: Development/Libraries
Requires: libpmem = %{version}-%{release}
%description -n libpmem-devel
The libpmem provides low level persistent memory support. In particular,
support for the persistent memory instructions for flushing changes
to pmem is provided.
to pmem is provided. This package provides the v1 API.
This library is provided for software which tracks every store to
pmem and needs to flush those changes to durability. Most developers
@ -101,24 +115,23 @@ will find higher level libraries like libpmemobj to be much more
convenient.
%files -n libpmem-devel
%defattr(-,root,root,-)
%{_libdir}/libpmem.so
%{_libdir}/pkgconfig/libpmem.pc
%{_includedir}/libpmem.h
%{_mandir}/man7/libpmem.7.gz
%{_mandir}/man3/pmem_*.3.gz
%{_mandir}/man5/pmem_ctl.5.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmem-debug
Summary: Debug variant of the low-level persistent memory library
Group: Development/Libraries
Requires: libpmem = %{version}-%{release}
%description -n libpmem-debug
The libpmem provides low level persistent memory support. In particular,
support for the persistent memory instructions for flushing changes
to pmem is provided.
to pmem is provided. This package provides the v1 API.
This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the
@ -126,7 +139,6 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug.
%files -n libpmem-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmem.so
%{_libdir}/pmdk_debug/libpmem.so.*
@ -134,17 +146,73 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmem2
Summary: Low-level persistent memory support library
%description -n libpmem2
The libpmem provides low level persistent memory support. In particular,
support for the persistent memory instructions for flushing changes
to pmem is provided. This package provides the v2 API.
%files -n libpmem2
%dir %{_datadir}/pmdk
%{_libdir}/libpmem2.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmem2-devel
Summary: Development files for the low-level persistent memory library
Requires: libpmem = %{version}-%{release}
%description -n libpmem2-devel
The libpmem provides low level persistent memory support. In particular,
support for the persistent memory instructions for flushing changes
to pmem is provided. This package provides the v2 API.
This library is provided for software which tracks every store to
pmem and needs to flush those changes to durability. Most developers
will find higher level libraries like libpmemobj to be much more
convenient.
%files -n libpmem2-devel
%{_libdir}/libpmem2.so
%{_libdir}/pkgconfig/libpmem2.pc
%{_includedir}/libpmem2.h
%{_mandir}/man7/libpmem2*7.gz
%{_mandir}/man3/pmem2_*.3.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmem2-debug
Summary: Debug variant of the low-level persistent memory library
Requires: libpmem = %{version}-%{release}
%description -n libpmem2-debug
The libpmem provides low level persistent memory support. In particular,
support for the persistent memory instructions for flushing changes
to pmem is provided. This package provides the v2 API.
This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the
debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug.
%files -n libpmem2-debug
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmem2.so
%{_libdir}/pmdk_debug/libpmem2.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmemblk
Summary: Persistent Memory Resident Array of Blocks library
Group: System Environment/Libraries
Requires: libpmem = %{version}-%{release}
Requires: libpmem >= %{version}-%{release}
%description -n libpmemblk
The libpmemblk implements a pmem-resident array of blocks, all the same
size, where a block is updated atomically with respect to power
failure or program interruption (no torn blocks).
%files -n libpmemblk
%defattr(-,root,root,-)
%{_libdir}/libpmemblk.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
@ -152,7 +220,6 @@ failure or program interruption (no torn blocks).
%package -n libpmemblk-devel
Summary: Development files for the Persistent Memory Resident Array of Blocks library
Group: Development/Libraries
Requires: libpmemblk = %{version}-%{release}
Requires: libpmem-devel = %{version}-%{release}
%description -n libpmemblk-devel
@ -167,7 +234,6 @@ developers will find higher level libraries like libpmemobj to be
more generally useful.
%files -n libpmemblk-devel
%defattr(-,root,root,-)
%{_libdir}/libpmemblk.so
%{_libdir}/pkgconfig/libpmemblk.pc
%{_includedir}/libpmemblk.h
@ -180,7 +246,6 @@ more generally useful.
%package -n libpmemblk-debug
Summary: Debug variant of the Persistent Memory Resident Array of Blocks library
Group: Development/Libraries
Requires: libpmemblk = %{version}-%{release}
%description -n libpmemblk-debug
The libpmemblk implements a pmem-resident array of blocks, all the same
@ -193,7 +258,6 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug.
%files -n libpmemblk-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmemblk.so
%{_libdir}/pmdk_debug/libpmemblk.so.*
@ -203,15 +267,13 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
%package -n libpmemlog
Summary: Persistent Memory Resident Log File library
Group: System Environment/Libraries
Requires: libpmem = %{version}-%{release}
Requires: libpmem >= %{version}-%{release}
%description -n libpmemlog
The libpmemlog library provides a pmem-resident log file. This is
useful for programs like databases that append frequently to a log
file.
%files -n libpmemlog
%defattr(-,root,root,-)
%{_libdir}/libpmemlog.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
@ -219,7 +281,6 @@ file.
%package -n libpmemlog-devel
Summary: Development files for the Persistent Memory Resident Log File library
Group: Development/Libraries
Requires: libpmemlog = %{version}-%{release}
Requires: libpmem-devel = %{version}-%{release}
%description -n libpmemlog-devel
@ -229,7 +290,6 @@ record variable length entries. Most developers will find higher
level libraries like libpmemobj to be more generally useful.
%files -n libpmemlog-devel
%defattr(-,root,root,-)
%{_libdir}/libpmemlog.so
%{_libdir}/pkgconfig/libpmemlog.pc
%{_includedir}/libpmemlog.h
@ -242,7 +302,6 @@ level libraries like libpmemobj to be more generally useful.
%package -n libpmemlog-debug
Summary: Debug variant of the Persistent Memory Resident Log File library
Group: Development/Libraries
Requires: libpmemlog = %{version}-%{release}
%description -n libpmemlog-debug
The libpmemlog library provides a pmem-resident log file. This
@ -256,7 +315,6 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug.
%files -n libpmemlog-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmemlog.so
%{_libdir}/pmdk_debug/libpmemlog.so.*
@ -266,15 +324,13 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
%package -n libpmemobj
Summary: Persistent Memory Transactional Object Store library
Group: System Environment/Libraries
Requires: libpmem = %{version}-%{release}
Requires: libpmem >= %{version}-%{release}
%description -n libpmemobj
The libpmemobj library provides a transactional object store,
providing memory allocation, transactions, and general facilities for
persistent memory programming.
%files -n libpmemobj
%defattr(-,root,root,-)
%{_libdir}/libpmemobj.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
@ -282,7 +338,6 @@ persistent memory programming.
%package -n libpmemobj-devel
Summary: Development files for the Persistent Memory Transactional Object Store library
Group: Development/Libraries
Requires: libpmemobj = %{version}-%{release}
Requires: libpmem-devel = %{version}-%{release}
%description -n libpmemobj-devel
@ -292,10 +347,10 @@ persistent memory programming. Developers new to persistent memory
probably want to start with this library.
%files -n libpmemobj-devel
%defattr(-,root,root,-)
%{_libdir}/libpmemobj.so
%{_libdir}/pkgconfig/libpmemobj.pc
%{_includedir}/libpmemobj.h
%dir %{_includedir}/libpmemobj
%{_includedir}/libpmemobj/*.h
%{_mandir}/man7/libpmemobj.7.gz
%{_mandir}/man5/poolset.5.gz
@ -312,7 +367,6 @@ probably want to start with this library.
%package -n libpmemobj-debug
Summary: Debug variant of the Persistent Memory Transactional Object Store library
Group: Development/Libraries
Requires: libpmemobj = %{version}-%{release}
%description -n libpmemobj-debug
The libpmemobj library provides a transactional object store,
@ -326,7 +380,6 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug.
%files -n libpmemobj-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmemobj.so
%{_libdir}/pmdk_debug/libpmemobj.so.*
@ -334,144 +387,15 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libvmem
Summary: Volatile Memory allocation library
Group: System Environment/Libraries
%description -n libvmem
The libvmem library turns a pool of persistent memory into a volatile
memory pool, similar to the system heap but kept separate and with
its own malloc-style API.
%files -n libvmem
%defattr(-,root,root,-)
%{_libdir}/libvmem.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libvmem-devel
Summary: Development files for the Volatile Memory allocation library
Group: Development/Libraries
Requires: libvmem = %{version}-%{release}
%description -n libvmem-devel
The libvmem library turns a pool of persistent memory into a volatile
memory pool, similar to the system heap but kept separate and with
its own malloc-style API.
This sub-package contains libraries and header files for developing
applications that want to make use of libvmem.
%files -n libvmem-devel
%defattr(-,root,root,-)
%{_libdir}/libvmem.so
%{_libdir}/pkgconfig/libvmem.pc
%{_includedir}/libvmem.h
%{_mandir}/man7/libvmem.7.gz
%{_mandir}/man3/vmem_*.3.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libvmem-debug
Summary: Debug variant of the Volatile Memory allocation library
Group: Development/Libraries
Requires: libvmem = %{version}-%{release}
%description -n libvmem-debug
The libvmem library turns a pool of persistent memory into a volatile
memory pool, similar to the system heap but kept separate and with
its own malloc-style API.
This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the
debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug.
%files -n libvmem-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libvmem.so
%{_libdir}/pmdk_debug/libvmem.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libvmmalloc
Summary: Dynamic to Persistent Memory allocation translation library
Group: System Environment/Libraries
%description -n libvmmalloc
The libvmmalloc library transparently converts all the dynamic memory
allocations into persistent memory allocations. This allows the use
of persistent memory as volatile memory without modifying the target
application.
The typical usage of libvmmalloc is to load it via the LD_PRELOAD
environment variable.
%files -n libvmmalloc
%defattr(-,root,root,-)
%{_libdir}/libvmmalloc.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libvmmalloc-devel
Summary: Development files for the Dynamic-to-Persistent allocation library
Group: Development/Libraries
Requires: libvmmalloc = %{version}-%{release}
%description -n libvmmalloc-devel
The libvmmalloc library transparently converts all the dynamic memory
allocations into persistent memory allocations. This allows the use
of persistent memory as volatile memory without modifying the target
application.
This sub-package contains libraries and header files for developing
applications that want to specifically make use of libvmmalloc.
%files -n libvmmalloc-devel
%defattr(-,root,root,-)
%{_libdir}/libvmmalloc.so
%{_libdir}/pkgconfig/libvmmalloc.pc
%{_includedir}/libvmmalloc.h
%{_mandir}/man7/libvmmalloc.7.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libvmmalloc-debug
Summary: Debug variant of the Dynamic-to-Persistent allocation library
Group: Development/Libraries
Requires: libvmmalloc = %{version}-%{release}
%description -n libvmmalloc-debug
The libvmmalloc library transparently converts all the dynamic memory
allocations into persistent memory allocations. This allows the use
of persistent memory as volatile memory without modifying the target
application.
This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the
debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug.
%files -n libvmmalloc-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libvmmalloc.so
%{_libdir}/pmdk_debug/libvmmalloc.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n libpmempool
Summary: Persistent Memory pool management library
Group: System Environment/Libraries
Requires: libpmem = %{version}-%{release}
Requires: libpmem >= %{version}-%{release}
%description -n libpmempool
The libpmempool library provides a set of utilities for off-line
administration, analysis, diagnostics and repair of persistent memory
pools created by libpmemlog, libpemblk and libpmemobj libraries.
pools created by libpmemlog, libpmemblk and libpmemobj libraries.
%files -n libpmempool
%defattr(-,root,root,-)
%{_libdir}/libpmempool.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
@ -479,16 +403,14 @@ pools created by libpmemlog, libpemblk and libpmemobj libraries.
%package -n libpmempool-devel
Summary: Development files for Persistent Memory pool management library
Group: Development/Libraries
Requires: libpmempool = %{version}-%{release}
Requires: libpmem-devel = %{version}-%{release}
%description -n libpmempool-devel
The libpmempool library provides a set of utilities for off-line
administration, analysis, diagnostics and repair of persistent memory
pools created by libpmemlog, libpemblk and libpmemobj libraries.
pools created by libpmemlog, libpmemblk and libpmemobj libraries.
%files -n libpmempool-devel
%defattr(-,root,root,-)
%{_libdir}/libpmempool.so
%{_libdir}/pkgconfig/libpmempool.pc
%{_includedir}/libpmempool.h
@ -501,12 +423,11 @@ pools created by libpmemlog, libpemblk and libpmemobj libraries.
%package -n libpmempool-debug
Summary: Debug variant of the Persistent Memory pool management library
Group: Development/Libraries
Requires: libpmempool = %{version}-%{release}
%description -n libpmempool-debug
The libpmempool library provides a set of utilities for off-line
administration, analysis, diagnostics and repair of persistent memory
pools created by libpmemlog, libpemblk and libpmemobj libraries.
pools created by libpmemlog, libpmemblk and libpmemobj libraries.
This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the
@ -514,7 +435,6 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug.
%files -n libpmempool-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/libpmempool.so
%{_libdir}/pmdk_debug/libpmempool.so.*
@ -522,93 +442,13 @@ debug version is to set the environment variable LD_LIBRARY_PATH to
%doc ChangeLog CONTRIBUTING.md README.md
%if %{with fabric}
%package -n librpmem
Summary: Remote Access to Persistent Memory library
Group: System Environment/Libraries
Requires: libfabric >= %{min_libfabric_ver}
Requires: openssh-clients
%description -n librpmem
The librpmem library provides low-level support for remote access
to persistent memory utilizing RDMA-capable NICs. It can be used
to replicate persistent memory regions over RDMA protocol.
%files -n librpmem
%defattr(-,root,root,-)
%{_libdir}/librpmem.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n librpmem-devel
Summary: Development files for the Remote Access to Persistent Memory library
Group: Development/Libraries
Requires: librpmem = %{version}-%{release}
%description -n librpmem-devel
The librpmem library provides low-level support for remote access
to persistent memory utilizing RDMA-capable NICs. It can be used
to replicate persistent memory regions over RDMA protocol.
This sub-package contains libraries and header files for developing
applications that want to specifically make use of librpmem.
%files -n librpmem-devel
%defattr(-,root,root,-)
%{_libdir}/librpmem.so
%{_libdir}/pkgconfig/librpmem.pc
%{_includedir}/librpmem.h
%{_mandir}/man7/librpmem.7.gz
%{_mandir}/man3/rpmem_*.3.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n librpmem-debug
Summary: Debug variant of the Remote Access to Persistent Memory library
Group: Development/Libraries
Requires: librpmem = %{version}-%{release}
%description -n librpmem-debug
The librpmem library provides low-level support for remote access
to persistent memory utilizing RDMA-capable NICs. It can be used
to replicate persistent memory regions over RDMA protocol.
This sub-package contains debug variant of the library, providing
run-time assertions and trace points. The typical way to access the
debug version is to set the environment variable LD_LIBRARY_PATH to
/usr/lib64/pmdk_debug.
%files -n librpmem-debug
%defattr(-,root,root,-)
%dir %{_libdir}/pmdk_debug
%{_libdir}/pmdk_debug/librpmem.so
%{_libdir}/pmdk_debug/librpmem.so.*
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%package -n rpmemd
Group: System Environment/Base
Summary: Target node process executed by librpmem
Requires: libfabric >= %{min_libfabric_ver}
%description -n rpmemd
The rpmemd process is executed on a target node by librpmem library
and facilitates access to persistent memory over RDMA.
%files -n rpmemd
%{_bindir}/rpmemd
%{_mandir}/man1/rpmemd.1.gz
%endif # _with_fabric
%package -n pmempool
Summary: Utilities for Persistent Memory
Group: System Environment/Base
Requires: libpmem = %{version}-%{release}
Requires: libpmemlog = %{version}-%{release}
Requires: libpmemblk = %{version}-%{release}
Requires: libpmemobj = %{version}-%{release}
Requires: libpmempool = %{version}-%{release}
Requires: libpmem >= %{version}-%{release}
Requires: libpmemlog >= %{version}-%{release}
Requires: libpmemblk >= %{version}-%{release}
Requires: libpmemobj >= %{version}-%{release}
Requires: libpmempool >= %{version}-%{release}
Obsoletes: nvml-tools < %{version}-%{release}
%description -n pmempool
The pmempool is a standalone utility for management and off-line analysis
@ -626,31 +466,11 @@ and users of the applications based on PMDK libraries.
%doc ChangeLog CONTRIBUTING.md README.md
%package -n pmreorder
Summary: Consistency Checker for Persistent Memory
Group: __GROUP_SYS_BASE__
Requires: /usr/libexec/platform-python
%description -n pmreorder
The pmreorder tool is a collection of python scripts designed to parse
and replay operations logged by pmemcheck - a persistent memory checking tool.
Pmreorder performs the store reordering between persistent memory barriers -
a sequence of flush-fence operations. It uses a consistency checking routine
provided in the command line options to check whether files are in a consistent state.
%files -n pmreorder
%{_bindir}/pmreorder
%{_datadir}/pmreorder/*.py
%{_mandir}/man1/pmreorder.1.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%if %{with ndctl}
%package -n daxio
Summary: Perform I/O on Device DAX devices or zero a Device DAX device
Group: System Environment/Base
Requires: libpmem = %{version}-%{release}
Requires: libpmem >= %{version}-%{release}
%description -n daxio
The daxio utility performs I/O on Device DAX devices or zero
a Device DAX device. Since the standard I/O APIs (read/write) cannot be used
@ -665,23 +485,53 @@ a device.
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
%endif # _with_ndctl
# _with_ndctl
%endif
%if %{with pmemcheck}
%package -n pmreorder
Summary: Consistency Checker for Persistent Memory
Requires: python3
%description -n pmreorder
The pmreorder tool is a collection of python scripts designed to parse
and replay operations logged by pmemcheck - a persistent memory checking tool.
Pmreorder performs the store reordering between persistent memory barriers -
a sequence of flush-fence operations. It uses a consistency checking routine
provided in the command line options to check whether files are in a consistent state.
%files -n pmreorder
%{_bindir}/pmreorder
%{_datadir}/pmreorder/*.py
%{_mandir}/man1/pmreorder.1.gz
%license LICENSE
%doc ChangeLog CONTRIBUTING.md README.md
# _with_pmemcheck
%endif
%prep
%setup -q -n %{name}-%{version}
%setup -q -n pmdk-%{upstreamversion}
%patch0 -p1
%patch1 -p1
%build
# This package calls binutils components directly and would need to pass
# in flags to enable the LTO plugins
# Disable LTO
%define _lto_cflags %{nil}
# For debug build default flags may be overriden to disable compiler
# optimizations.
%set_build_flags
NDCTL_ENABLE=y make %{?_smp_mflags} NORPATH=1
CFLAGS="%{optflags}" \
LDFLAGS="%{?__global_ldflags}" \
make %{?_smp_mflags} NORPATH=1 DOC=n
# Override LIB_AR with empty string to skip installation of static libraries
%install
NDCTL_ENABLE=y make install DESTDIR=%{buildroot} \
make install DESTDIR=%{buildroot} \
DOC=n \
LIB_AR= \
prefix=%{_prefix} \
libdir=%{_libdir} \
@ -692,57 +542,202 @@ NDCTL_ENABLE=y make install DESTDIR=%{buildroot} \
docdir=%{_docdir}
mkdir -p %{buildroot}%{_datadir}/pmdk
cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/
mkdir -p %{buildroot}%{_mandir}
(cd %{buildroot}%{_mandir}; tar xzvf %{SOURCE1})
%post -n libpmem -p /sbin/ldconfig
%postun -n libpmem -p /sbin/ldconfig
%post -n libpmemblk -p /sbin/ldconfig
%postun -n libpmemblk -p /sbin/ldconfig
%post -n libpmemlog -p /sbin/ldconfig
%postun -n libpmemlog -p /sbin/ldconfig
%post -n libpmemobj -p /sbin/ldconfig
%postun -n libpmemobj -p /sbin/ldconfig
%post -n libvmem -p /sbin/ldconfig
%postun -n libvmem -p /sbin/ldconfig
%post -n libvmmalloc -p /sbin/ldconfig
%postun -n libvmmalloc -p /sbin/ldconfig
%post -n libpmempool -p /sbin/ldconfig
%postun -n libpmempool -p /sbin/ldconfig
%check
%if 0%{?_skip_check} == 1
echo "Check skipped"
%else
echo "PMEM_FS_DIR=/tmp" > src/test/testconfig.sh
echo "PMEM_FS_DIR_FORCE_PMEM=1" >> src/test/testconfig.sh
echo 'TEST_BUILD="debug nondebug"' >> src/test/testconfig.sh
echo "TM=1" >> src/test/testconfig.sh
%if %{with fabric}
%post -n librpmem -p /sbin/ldconfig
%postun -n librpmem -p /sbin/ldconfig
echo "config = {" > src/test/testconfig.py
echo " 'pmem_fs_dir': '/tmp'," >> src/test/testconfig.py
echo " 'fs_dir_force_pmem': 1," >> src/test/testconfig.py
echo " 'build': ['debug', 'release']," >> src/test/testconfig.py
echo " 'tm': 1," >> src/test/testconfig.py
echo " 'test_type': 'check'," >> src/test/testconfig.py
echo " 'fs': 'all'," >> src/test/testconfig.py
echo " 'unittest_log_level': 1," >> src/test/testconfig.py
echo " 'keep_going': False," >> src/test/testconfig.py
echo " 'timeout': '30m'," >> src/test/testconfig.py
echo " 'dump_lines': 30," >> src/test/testconfig.py
echo " 'force_enable': None," >> src/test/testconfig.py
echo " 'device_dax_path': []," >> src/test/testconfig.py
echo " 'granularity': 'cacheline'," >> src/test/testconfig.py
echo " 'enable_admin_tests': False," >> src/test/testconfig.py
echo " 'fail_on_skip': False," >> src/test/testconfig.py
echo " 'cacheline_fs_dir': '/tmp'," >> src/test/testconfig.py
echo " 'force_cacheline': True," >> src/test/testconfig.py
echo " 'granularity': 'cacheline'," >> src/test/testconfig.py
echo "}" >> src/test/testconfig.py
rm -f src/test/obj_sync/TEST7
make pycheck
make check
%endif
%ldconfig_scriptlets -n libpmem
%ldconfig_scriptlets -n libpmem2
%ldconfig_scriptlets -n libpmemblk
%ldconfig_scriptlets -n libpmemlog
%ldconfig_scriptlets -n libpmemobj
%ldconfig_scriptlets -n libpmempool
%if 0%{?__debug_package} == 0
%debug_package
%endif
%changelog
* Wed Oct 31 2018 Jeff Moyer <jmoyer@redhat.com> - 1.5-2.el8
- Fix up python3 uses to instead use platform-python (Jeff Moyer)
- related: rhbz#1488828
* Tue Oct 18 2022 Bryan Gurney <bgurney@redhat.com > 1.12.1-1
- Update to PMDK version 1.12.1
- Related: rhbz#2111431
* Wed Oct 31 2018 Jeff Moyer <jmoyer@redhat.com> - 1.5-1.el8
- rebase to pmdk-1.5, and rename to nvml (Jeff Moyer)
- broken libpmemcto was removed
- c++ bindings were moved to a separate project/package
- Fix library requires to be =n-v-r instead of >= (Jeff Moyer)
- resolves: rhbz#1488828
* Mon Feb 07 2022 Bryan Gurney <bgurney@redhat.com> - 1.10.1-2
- Use DDEBUG in Makefile.inc instead of DEBUG_CFLAGS
- Related: rhbz#2044882
* Mon Oct 08 2018 Jeff Moyer <jmoyer@redhat.com> - 1.4-6.el8
- default to building daxio (Jeff Moyer)
- Resolves: rhbz#1637168
* Thu Oct 14 2021 Bryan Gurney <bgurney@redhat.com> - 1.10.1-1
- Update to PMDK version 1.10.1
- Related: rhbz#1874208
- Remove BuildRequires line for libfabric-devel
- Related: rhbz#2009502
* Wed Sep 26 2018 Jeff Moyer <jmoyer@redhat.com> - 1.4-5.el8
- use %set_build_flags instead of %{optflags}
- Resolves: rhbz#1630611
* Mon Oct 04 2021 Bryan Gurney <bgurney@redhat.com> - 1.10-11
- Do not generate librpmem man pages
- Related: rhbz#2002998
* Tue May 22 2018 Jeff Moyer <jmoyer@redhat.com> - 1.4-4
- Get rid of SuSe conditionals (Jeff Moyer)
- Remove the %check section. (Jeff Moyer)
- Resolves: rhbz#1580829
* Thu Sep 16 2021 Bryan Gurney <bgurney@redhat.com> - 1.10-10
- Do not build librpmem packages
- Related: rhbz#2002998
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.10-9
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Mon Aug 02 2021 Bryan Gurney <bgurney@redhat.com> - 1.10-8.el9
- Supersede uninitialized value patch with upstream version
- Add upstream patch: common: fix mismatch between prototype and body
- Makefile: bypass check-doc in check target
- Related: rhbz#1985096
* Fri Jul 30 2021 Bryan Gurney <bgurney@redhat.com> - 1.10.7-el9
- Remove BuildRequires line for libunwind.devel
- Resolves: rhbz#1984766
* Wed Jun 16 2021 Jeff Moyer <jmoyer@redhat.com> - 1.10-6.el9
- Build man pages outside of the rpm.
- Resolves: rhbz#1943530
* Mon Apr 26 2021 Jeff Moyer <jmoyer@redhat.com> - 1.10-5
- Don't run %check on the build infrastructure.
- Resolves: rhbz#1951273
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.10-4
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.10-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Dec 04 2020 Jeff Law <law@redhat.com> - 1.10-2
- Fix uninitialized variable in tests caught by gcc-11 (again)
* Sat Oct 31 2020 Adam Borowski <kilobyte@angband.pl> - 1.10-1
- Update to PMDK version 1.10
- New set of binary libraries: libpmem2{,-devel,-debug}
- Drop obj_sync/7 test as it randomly fails on ppc64le (to investigate).
* Fri Oct 30 2020 Adam Borowski <kilobyte@angband.pl> - 1.9.2-2
- Second attempt -- retry a transient failure on ppc64le.
* Wed Oct 28 2020 Adam Borowski <kilobyte@angband.pl> - 1.9.2-1
- Update to PMDK version 1.9.2
- Install pmem_ctl(5).
* Fri Oct 2 2020 Adam Borowski <kilobyte@angband.pl> - 1.9.1-1
- Update to PMDK version 1.9.1
* Tue Sep 15 2020 Jeff Law <law@redhat.com> - 1.9-5
- Fix uninitialized variable in tests caught by gcc-11
* Tue Aug 18 2020 Adam Borowski <kilobyte@angband.pl> - 1.9-4
- Fix FTBFS with new binutils.
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.9-3
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 7 2020 Adam Borowski <kilobyte@angband.pl> - 1.9-1
- Update to PMDK version 1.9
- Drop upstreamed patches.
- Add pandoc and groff to B-Reqs.
- Add required testconfig.py fields.
- Increase test timeout.
* Tue Jun 30 2020 Jeff Law <law@redhat.com> - 1.8-3
Disable LTO
* Wed Feb 26 2020 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.8-2
- Enable PPC64LE packages
* Wed Feb 12 2020 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.8-1
- Update to PMDK version 1.8. This release stops shipping
libvmem & libvmmalloc. These libraries are now provided by vmem
package.
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Oct 1 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.7-1
- Update to PMDK version 1.7
* Fri Aug 30 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.6.1-1
- Update to PMDK version 1.6.1
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Mar 26 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.6-1
- Update to PMDK version 1.6
* Mon Mar 18 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.6-0.1.rc2
- Update to PMDK version 1.6-rc2
* Fri Mar 08 2019 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.5.1-1
- Update to PMDK version 1.5.1
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Dec 14 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.5-2
- Remove Group: tag and add ownership information for libpmemobj headers
directory.
* Tue Nov 6 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.5-1
- Update to PMDK version 1.5
libpmemobj C++ bindings moved to separate package (RHBZ #1647145)
pmempool convert is now a thin wrapper around pmdk-convert (RHBZ #1647147)
* Fri Aug 17 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.4.2-1
- Update to PMDK version 1.4.2 (RHBZ #1589406)
* Tue Aug 14 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.4.2-0.2.rc1
- Revert package name change
* Tue Aug 14 2018 Marcin Ślusarz <marcin.slusarz@intel.com> - 1.4.2-0.1.rc1
- Update to PMDK version 1.4.2-rc1 (RHBZ #1589406)
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Mar 30 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com> - 1.4-3
- Revert package name change

View File

@ -0,0 +1,27 @@
--- pmdk-1.10.1/src/Makefile.inc.orig 2022-02-01 10:57:54.530694627 -0500
+++ pmdk-1.10.1/src/Makefile.inc 2022-02-01 10:59:19.461777353 -0500
@@ -67,14 +67,10 @@ DEFAULT_CFLAGS += -DSTRINGOP_TRUNCATION_
endif
ifeq ($(DEBUG),1)
-# Undefine _FORTIFY_SOURCE in case it's set in system-default or
-# user-defined CFLAGS as it conflicts with -O0.
-DEBUG_CFLAGS += -Wp,-U_FORTIFY_SOURCE
-DEBUG_CFLAGS += -O0 -ggdb -DDEBUG
LIB_SUBDIR = /pmdk_debug
OBJDIR = debug
else
-DEFAULT_CFLAGS += -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
+DEFAULT_CFLAGS += -O2 -g -D_FORTIFY_SOURCE=2
LIB_SUBDIR =
OBJDIR = nondebug
endif
@@ -119,7 +115,7 @@ endif
CFLAGS += $(EXTRA_CFLAGS)
ifeq ($(DEBUG),1)
-CFLAGS += $(EXTRA_CFLAGS_DEBUG) $(DEBUG_CFLAGS)
+CFLAGS += $(EXTRA_CFLAGS_DEBUG) -DDEBUG
else
CFLAGS += $(EXTRA_CFLAGS_RELEASE)
endif

View File

@ -0,0 +1,18 @@
--- pmdk-1.12.1/src/Makefile.inc.orig 2022-10-17 11:06:39.232365095 -0400
+++ pmdk-1.12.1/src/Makefile.inc 2022-10-17 11:09:28.751365095 -0400
@@ -73,14 +73,10 @@ endif
DEFAULT_CFLAGS += -Wno-deprecated-declarations
ifeq ($(DEBUG),1)
-# Undefine _FORTIFY_SOURCE in case it's set in system-default or
-# user-defined CFLAGS as it conflicts with -O0.
-DEBUG_CFLAGS += -Wp,-U_FORTIFY_SOURCE
-DEBUG_CFLAGS += -O0 -ggdb -DDEBUG
LIB_SUBDIR = /pmdk_debug
OBJDIR = debug
else
-DEFAULT_CFLAGS += -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
+DEFAULT_CFLAGS += -O2 -g -D_FORTIFY_SOURCE=2
LIB_SUBDIR =
OBJDIR = nondebug
endif

2
sources Normal file
View File

@ -0,0 +1,2 @@
SHA512 (pmdk-1.12.1.tar.gz) = 9b29b2038af42829b809a182ece292b6b8bfd003519c3b8f223ec3cba552da0a561477b0e7dbaf14ad7fee8120b136ded10e2d3e1bc6a4a10771051f9aeca683
SHA512 (pmdk-1.12.1-man.tar.gz) = 2035ec0510c2e056b9e45a3a1b4bc2399e6a0c635ddb64a5380733e9988db06c6076c77ced0de2d1cbbc58b7bb447eb77c0d51324a411e9478b068559107089d

25
tests/run_test.sh Normal file
View File

@ -0,0 +1,25 @@
#!/bin/bash
cat <<EOF>./source/src/test/testconfig.sh
NON_PMEM_FS_DIR=/tmp
TEST_TYPE=medium
TEST_BUILD=nondebug
TEST_FS=non-pmem
TM=1
KEEP_GOING=y
CLEAN_FAILED=y
PMDK_LIB_PATH_NONDEBUG=/usr/lib64
EOF
cd source
if [ ! -f .skip-doc ]
then
touch .skip-doc
fi
rm -f src/test/pmemset*/TEST*
rm -f src/test/rpmemd_dbg/TEST*
rm -f src/test/rpmemd_log/TEST*
rm -f src/test/obj_zones/TEST*
make check

34
tests/tests.yml Normal file
View File

@ -0,0 +1,34 @@
- hosts: localhost
roles:
- role: standard-test-source
tags:
- always
- role: standard-test-basic
tags:
- atomic
- classic
required_packages:
- daxio
- libpmem-devel
- libpmemblk-devel
- libpmemlog-devel
- libpmemobj-devel
- libpmempool-devel
- pmempool
- ndctl-devel
- daxctl-devel
- gcc
- make
- cmake
- glibc-devel
- autoconf
- automake
- man
- pkgconfig
- doxygen
- gdb
- bc
tests:
- regression: # Run tests
dir: .
run: ./run_test.sh