# PetscCIFilename
returns the basename of a file name when the PETSc CI portable error output mode is enabled. 
## Synopsis
```
#include "petscsys.h"   
const char *PetscCIFilename(const char *file)
```
Not collective


## Input Parameter

- ***file -*** the file name



## Note
PETSc CI mode is a mode of running PETSc where output (both error and non-error) is made portable across all systems
so that comparisons of output between runs are easy to make.

This mode is used for all tests in the test harness, it applies to both debug and optimized builds.

Use the option -petsc_ci to turn on PETSc CI mode. It changes certain output in non-error situations to be portable for
all systems, mainly the output of options. It is passed to all PETSc programs automatically by the test harness.

Always uses the Unix / as the file separate even on Microsoft Windows systems

The option -petsc_ci_portable_error_output attempts to output the same error messages on all systems for the test harness.
In particular the output of filenames and line numbers in PETSc stacks. This is to allow (limited) checking of PETSc
error handling by the test harness. This options also causes PETSc to attempt to return an error code of 0 so that the test
harness can process the output for differences in the usual manner as for successful runs. It should be provided to the test
harness in the args: argument for specific examples. It will not necessarily produce portable output if different errors
(or no errors) occur on a subset of the MPI ranks.




## See Also
 `PetscCILinenumber()`

## Level
developer

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/sys/utils/str.c.html#PetscCIFilename">src/sys/utils/str.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/utils/str.c)


[Index of all Sys routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
