1
1

Since we've had problems recognizing the "special" Fortran constants,

add an explicit test case that checks for them.  It is necessary to
put this test function here because the OMPI_IS* macros are only
defined in this directory.

This commit was SVN r9195.
Этот коммит содержится в:
Jeff Squyres 2006-03-04 13:23:19 +00:00
родитель adc6753fa9
Коммит c31e515db1
2 изменённых файлов: 79 добавлений и 4 удалений

Просмотреть файл

@ -1,5 +1,5 @@
# #
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana # Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology # University Research and Technology
# Corporation. All rights reserved. # Corporation. All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University # Copyright (c) 2004-2005 The University of Tennessee and The University
@ -16,8 +16,6 @@
# $HEADER$ # $HEADER$
# #
SUBDIRS = profile SUBDIRS = profile
# #
@ -66,7 +64,8 @@ headers = \
libmpi_f77_la_SOURCES = \ libmpi_f77_la_SOURCES = \
constants_f.c \ constants_f.c \
attr_fn_f.c \ attr_fn_f.c \
strings.c strings.c \
test_constants_f.c
# #
# libmpi_c_mpi.la is only built in some cases (see above) # libmpi_c_mpi.la is only built in some cases (see above)

76
ompi/mpi/f77/test_constants_f.c Обычный файл
Просмотреть файл

@ -0,0 +1,76 @@
/*
* Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "ompi/mpi/f77/bindings.h"
#include "ompi/mpi/f77/constants.h"
/* This is an internal test function for Open MPI; it does not have a
profiled equivalent. */
PN(void, ompi_test_fortran_constants, OMPI_TEST_FORTRAN_CONSTANTS, (char *bottom, char *in_place, char *argv, char *argvs, char *status, char *statuses, MPI_Fint *flag));
#if OMPI_HAVE_WEAK_SYMBOLS
#pragma weak OMPI_TEST_FORTRAN_CONSTANTS = ompi_test_fortran_constants_f
#pragma weak ompi_test_fortran_constants = ompi_test_fortran_constants_f
#pragma weak ompi_test_fortran_constants_ = ompi_test_fortran_constants_f
#pragma weak ompi_test_fortran_constants__ = ompi_test_fortran_constants_f
#endif
#if ! OMPI_HAVE_WEAK_SYMBOLS
OMPI_GENERATE_F77_BINDINGS (OMPI_TEST_FORTRAN_CONSTANTS,
ompi_test_fortran_constants,
ompi_test_fortran_constants_,
ompi_test_fortran_constants__,
ompi_test_fortran_constants_f,
(char *bottom, char *in_place, char *argv, char *argvs, char *status, char *statuses, MPI_Fint *flag)
(bottom, in_place, argv, argvs, status, statuses, flag) )
#endif
void ompi_test_fortran_constants_f(char *bottom, char *in_place,
char *argv, char *argvs,
char *status, char *statuses,
MPI_Fint *flag)
{
*flag = 1;
if (!OMPI_IS_FORTRAN_BOTTOM(bottom)) {
fprintf(stderr, "WARNING: Fortran MPI_BOTTOM not recognized properly\n");
*flag = 0;
}
if (!OMPI_IS_FORTRAN_IN_PLACE(in_place)) {
fprintf(stderr, "WARNING: Fortran MPI_IN_PLACE not recognized properly\n");
*flag = 0;
}
if (!OMPI_IS_FORTRAN_ARGV_NULL(argv)) {
fprintf(stderr, "WARNING: Fortran MPI_ARGV_NULL not recognized properly\n");
*flag = 0;
}
if (!OMPI_IS_FORTRAN_ARGVS_NULL(argvs)) {
fprintf(stderr, "WARNING: Fortran MPI_ARGVS_NULL not recognized properly\n");
*flag = 0;
}
if (!OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
fprintf(stderr, "WARNING: Fortran MPI_STATUS_IGNORE not recognized properly\n");
*flag = 0;
}
if (!OMPI_IS_FORTRAN_STATUSES_IGNORE(statuses)) {
fprintf(stderr, "WARNING: Fortran MPI_STATUSES not recognized properly\n");
*flag = 0;
}
}