Skip to content

Commit 80e55db

Browse files
Merge pull request #830 from ldorau/Fix_file_provider_tests_-_should_use_two_different_files
Fix `file_open_ipc_handle()` of file provider - producer and consumer should use two different files
2 parents 680bf7d + ddab0e6 commit 80e55db

File tree

4 files changed

+16
-12
lines changed

4 files changed

+16
-12
lines changed

.github/workflows/reusable_dax.yml

+7-5
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ env:
2626
FSDAX_NAMESPACE : "1.0"
2727
FSDAX_PMEM: "pmem1"
2828
UMF_TESTS_FSDAX_PATH: "/mnt/pmem1/file"
29+
UMF_TESTS_FSDAX_PATH_2: "/mnt/pmem1/file_2"
2930
BUILD_DIR : "${{github.workspace}}/build"
3031
INSTL_DIR : "${{github.workspace}}/../install-dir"
3132
COVERAGE_DIR : "${{github.workspace}}/coverage"
@@ -55,11 +56,12 @@ jobs:
5556
run: |
5657
echo FSDAX_NAMESPACE="${{env.FSDAX_NAMESPACE}}"
5758
echo UMF_TESTS_FSDAX_PATH="${{env.UMF_TESTS_FSDAX_PATH}}"
59+
echo UMF_TESTS_FSDAX_PATH_2="${{env.UMF_TESTS_FSDAX_PATH_2}}"
5860
ndctl list --namespace=namespace${{env.FSDAX_NAMESPACE}}
5961
ls -al /dev/${{env.FSDAX_PMEM}} /mnt/${{env.FSDAX_PMEM}}
6062
mount | grep -e "/dev/${{env.FSDAX_PMEM}}"
61-
touch ${{env.UMF_TESTS_FSDAX_PATH}}
62-
rm -f ${{env.UMF_TESTS_FSDAX_PATH}}
63+
touch ${{env.UMF_TESTS_FSDAX_PATH}} ${{env.UMF_TESTS_FSDAX_PATH_2}}
64+
rm -f ${{env.UMF_TESTS_FSDAX_PATH}} ${{env.UMF_TESTS_FSDAX_PATH_2}}
6365
6466
- name: Checkout
6567
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
@@ -100,9 +102,9 @@ jobs:
100102
- name: Run the FSDAX tests
101103
working-directory: ${{env.BUILD_DIR}}
102104
run: |
103-
UMF_TESTS_FSDAX_PATH=${{env.UMF_TESTS_FSDAX_PATH}} ctest -C ${{matrix.build_type}} -R umf-provider_file_memory -V
104-
UMF_TESTS_FSDAX_PATH=${{env.UMF_TESTS_FSDAX_PATH}} ctest -C ${{matrix.build_type}} -R umf_example_dram_and_fsdax -V
105-
UMF_TESTS_FSDAX_PATH=${{env.UMF_TESTS_FSDAX_PATH}} ctest -C ${{matrix.build_type}} -R umf-ipc_file_prov_fsdax -V
105+
UMF_TESTS_FSDAX_PATH=${{env.UMF_TESTS_FSDAX_PATH}} UMF_TESTS_FSDAX_PATH_2=${{env.UMF_TESTS_FSDAX_PATH_2}} ctest -C ${{matrix.build_type}} -R umf-provider_file_memory -V
106+
UMF_TESTS_FSDAX_PATH=${{env.UMF_TESTS_FSDAX_PATH}} UMF_TESTS_FSDAX_PATH_2=${{env.UMF_TESTS_FSDAX_PATH_2}} ctest -C ${{matrix.build_type}} -R umf_example_dram_and_fsdax -V
107+
UMF_TESTS_FSDAX_PATH=${{env.UMF_TESTS_FSDAX_PATH}} UMF_TESTS_FSDAX_PATH_2=${{env.UMF_TESTS_FSDAX_PATH_2}} ctest -C ${{matrix.build_type}} -R umf-ipc_file_prov_fsdax -V
106108
107109
- name: Check coverage
108110
if: ${{ matrix.build_type == 'Debug' }}

src/provider/provider_file_memory.c

-4
Original file line numberDiff line numberDiff line change
@@ -665,10 +665,6 @@ static umf_result_t file_open_ipc_handle(void *provider, void *providerIpcData,
665665
umf_result_t ret = UMF_RESULT_SUCCESS;
666666
int fd;
667667

668-
if (strncmp(file_ipc_data->path, file_provider->path, PATH_MAX)) {
669-
return UMF_RESULT_ERROR_INVALID_ARGUMENT;
670-
}
671-
672668
fd = utils_file_open(file_ipc_data->path);
673669
if (fd == -1) {
674670
LOG_PERR("opening the file to be mapped (%s) failed",

test/ipc_file_prov.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ UMF_LOG_VAL="level:debug;flush:debug;output:stderr;pid:yes"
2020
rm -f ${FILE_NAME}
2121

2222
echo "Starting ipc_file_prov CONSUMER on port $PORT ..."
23-
UMF_LOG=$UMF_LOG_VAL ./umf_test-ipc_file_prov_consumer $PORT $FILE_NAME &
23+
UMF_LOG=$UMF_LOG_VAL ./umf_test-ipc_file_prov_consumer $PORT ${FILE_NAME}_consumer &
2424

2525
echo "Waiting 1 sec ..."
2626
sleep 1
2727

2828
echo "Starting ipc_file_prov PRODUCER on port $PORT ..."
29-
UMF_LOG=$UMF_LOG_VAL ./umf_test-ipc_file_prov_producer $PORT $FILE_NAME
29+
UMF_LOG=$UMF_LOG_VAL ./umf_test-ipc_file_prov_producer $PORT ${FILE_NAME}_producer
3030

3131
# remove the SHM file
3232
rm -f ${FILE_NAME}

test/ipc_file_prov_fsdax.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@ if [ "$UMF_TESTS_FSDAX_PATH" = "" ]; then
1414
exit 0
1515
fi
1616

17+
if [ "$UMF_TESTS_FSDAX_PATH_2" = "" ]; then
18+
echo "$0: Test skipped, UMF_TESTS_FSDAX_PATH_2 is not set";
19+
exit 0
20+
fi
21+
1722
FILE_NAME="$UMF_TESTS_FSDAX_PATH"
23+
FILE_NAME_2="$UMF_TESTS_FSDAX_PATH_2"
1824

1925
# port should be a number from the range <1024, 65535>
2026
PORT=$(( 1024 + ( $$ % ( 65535 - 1024 ))))
@@ -31,7 +37,7 @@ echo "Waiting 1 sec ..."
3137
sleep 1
3238

3339
echo "Starting ipc_file_prov_fsdax PRODUCER on port $PORT ..."
34-
UMF_LOG=$UMF_LOG_VAL ./umf_test-ipc_file_prov_producer $PORT $FILE_NAME "FSDAX"
40+
UMF_LOG=$UMF_LOG_VAL ./umf_test-ipc_file_prov_producer $PORT $FILE_NAME_2 "FSDAX"
3541

3642
# remove the SHM file
3743
rm -f ${FILE_NAME}

0 commit comments

Comments
 (0)