Add tests for cpus out of order in metadata
Reported-by: Arnau Cinca <arnau.cinca@bsc.es>
This commit is contained in:
		
							parent
							
								
									23faac0c1b
								
							
						
					
					
						commit
						3b65b0a52d
					
				| @ -1,4 +1,4 @@ | |||||||
| # Copyright (c) 2022-2024 Barcelona Supercomputing Center (BSC) | # Copyright (c) 2022-2025 Barcelona Supercomputing Center (BSC) | ||||||
| # SPDX-License-Identifier: GPL-3.0-or-later  | # SPDX-License-Identifier: GPL-3.0-or-later  | ||||||
| 
 | 
 | ||||||
| test_emu(flush-overhead.c DISABLED) | test_emu(flush-overhead.c DISABLED) | ||||||
| @ -33,3 +33,5 @@ test_emu(dummy.c NAME "match-doc-events" DRIVER "match-doc-events.sh") | |||||||
| test_emu(dummy.c NAME "match-doc-version" DRIVER "match-doc-version.sh") | test_emu(dummy.c NAME "match-doc-version" DRIVER "match-doc-version.sh") | ||||||
| test_emu(libovni-attr.c) | test_emu(libovni-attr.c) | ||||||
| test_emu(libovni-mark.c MP) | test_emu(libovni-mark.c MP) | ||||||
|  | test_emu(split-loom-cpus.c MP) | ||||||
|  | test_emu(duplicated-cpu-index.c MP SHOULD_FAIL REGEX "cpu with index 0 already taken") | ||||||
|  | |||||||
							
								
								
									
										36
									
								
								test/emu/ovni/duplicated-cpu-index.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								test/emu/ovni/duplicated-cpu-index.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | |||||||
|  | /* Copyright (c) 2025 Barcelona Supercomputing Center (BSC)
 | ||||||
|  |  * SPDX-License-Identifier: GPL-3.0-or-later */ | ||||||
|  | 
 | ||||||
|  | #include <stdlib.h> | ||||||
|  | #include "compat.h" | ||||||
|  | #include "instr.h" | ||||||
|  | 
 | ||||||
|  | int | ||||||
|  | main(void) | ||||||
|  | { | ||||||
|  | 	int rank = atoi(getenv("OVNI_RANK")); | ||||||
|  | 	int nranks = atoi(getenv("OVNI_NRANKS")); | ||||||
|  | 
 | ||||||
|  | 	if (nranks < 2) | ||||||
|  | 		die("need at least 2 ranks"); | ||||||
|  | 
 | ||||||
|  | 	char hostname[OVNI_MAX_HOSTNAME]; | ||||||
|  | 
 | ||||||
|  | 	if (gethostname(hostname, OVNI_MAX_HOSTNAME) != 0) | ||||||
|  | 		die("gethostname failed"); | ||||||
|  | 
 | ||||||
|  | 	ovni_version_check(); | ||||||
|  | 	ovni_proc_init(1, hostname, getpid()); | ||||||
|  | 	ovni_thread_init(get_tid()); | ||||||
|  | 
 | ||||||
|  | 	/* Wrongly set the logical index to 0 always */ | ||||||
|  | 	ovni_add_cpu(0, rank); | ||||||
|  | 
 | ||||||
|  | 	instr_thread_execute(rank, -1, 0); | ||||||
|  | 
 | ||||||
|  | 	sleep_us(50); | ||||||
|  | 
 | ||||||
|  | 	instr_end(); | ||||||
|  | 
 | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
							
								
								
									
										38
									
								
								test/emu/ovni/split-loom-cpus.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								test/emu/ovni/split-loom-cpus.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | |||||||
|  | /* Copyright (c) 2025 Barcelona Supercomputing Center (BSC)
 | ||||||
|  |  * SPDX-License-Identifier: GPL-3.0-or-later */ | ||||||
|  | 
 | ||||||
|  | #include <stdlib.h> | ||||||
|  | #include "compat.h" | ||||||
|  | #include "instr.h" | ||||||
|  | 
 | ||||||
|  | int | ||||||
|  | main(void) | ||||||
|  | { | ||||||
|  | 	int rank = atoi(getenv("OVNI_RANK")); | ||||||
|  | 	int nranks = atoi(getenv("OVNI_NRANKS")); | ||||||
|  | 
 | ||||||
|  | 	if (nranks < 2) | ||||||
|  | 		die("need at least 2 ranks"); | ||||||
|  | 
 | ||||||
|  | 	char hostname[OVNI_MAX_HOSTNAME]; | ||||||
|  | 
 | ||||||
|  | 	if (gethostname(hostname, OVNI_MAX_HOSTNAME) != 0) | ||||||
|  | 		die("gethostname failed"); | ||||||
|  | 
 | ||||||
|  | 	ovni_version_check(); | ||||||
|  | 	ovni_proc_init(1, hostname, getpid()); | ||||||
|  | 	ovni_thread_init(get_tid()); | ||||||
|  | 
 | ||||||
|  | 	/* Define only one CPU per rank but in reverse order so they are not
 | ||||||
|  | 	 * processed in increasing index order */ | ||||||
|  | 	int cpu = nranks - rank - 1; | ||||||
|  | 	ovni_add_cpu(cpu, cpu); | ||||||
|  | 
 | ||||||
|  | 	instr_thread_execute(cpu, -1, 0); | ||||||
|  | 
 | ||||||
|  | 	sleep_us(50); | ||||||
|  | 
 | ||||||
|  | 	instr_end(); | ||||||
|  | 
 | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user