Actual source code: test4.c

slepc-3.16.0 2021-09-30
Report Typos and Errors
  1: /*
  2:    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  3:    SLEPc - Scalable Library for Eigenvalue Problem Computations
  4:    Copyright (c) 2002-2021, Universitat Politecnica de Valencia, Spain

  6:    This file is part of SLEPc.
  7:    SLEPc is distributed under a 2-clause BSD license (see LICENSE).
  8:    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  9: */

 11: static char help[] = "Tests SlepcInitialize() after PetscInitialize().\n\n";

 13: #include <slepcsys.h>

 15: int main(int argc,char **argv)
 16: {
 18:   PetscBool      pInitialized,sInitialized,pFinalized,sFinalized,skip_petsc_finalize;

 20:   PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr;
 21:   PetscInitialized(&pInitialized);
 22:   SlepcInitialized(&sInitialized);
 23:   PetscPrintf(PETSC_COMM_WORLD,"PetscInitialized=%d, SlepcInitialized=%d.\n",pInitialized,sInitialized);
 24:   SlepcInitialize(&argc,&argv,(char*)0,help);
 25:   PetscInitialized(&pInitialized);
 26:   SlepcInitialized(&sInitialized);
 27:   PetscPrintf(PETSC_COMM_WORLD,"PetscInitialized=%d, SlepcInitialized=%d.\n",pInitialized,sInitialized);
 28:   PetscOptionsHasName(NULL,NULL,"-skip_petsc_finalize",&skip_petsc_finalize);
 29:   if (!skip_petsc_finalize) {
 30:     PetscFinalize();if (ierr) return ierr;
 31:     PetscFinalized(&pFinalized);if (ierr) return ierr;
 32:     if (!pFinalized) printf("Unexpected value: PetscFinalized() returned False after PetscFinalize()\n");
 33:   }
 34:   SlepcFinalized(&sFinalized);if (ierr) return ierr;
 35:   if (sFinalized) printf("Unexpected value: SlepcFinalized() returned True before SlepcFinalize()\n");
 36:   SlepcFinalize();
 37:   if (ierr) printf("SlepcFinalize() returned with error code %d\n",ierr);
 38:   SlepcFinalized(&sFinalized);
 39:   if (!sFinalized) printf("Unexpected value: SlepcFinalized() returned False after SlepcFinalize()\n");
 40:   return ierr;
 41: }

 43: /*TEST

 45:    testset:
 46:       output_file: output/test4_1.out
 47:       test:
 48:          suffix: 1
 49:       test:
 50:          suffix: 2
 51:          args: -skip_petsc_finalize
 52:          TODO: shows an mpiexec error message in C++ jobs

 54: TEST*/