# loki.tests.test_sourcefile

Functions

`fixture_here`() |
`test_sourcefile_clone`(frontend, tmp_path) | Make sure cloning a source file works as expected
`test_sourcefile_cpp_preprocessing`(here, frontend) | Test the use of the external CPP-preprocessor.
`test_sourcefile_cpp_stmt_func`(here, ...) | Test the correct identification of statement functions after inlining by preprocessor.
`test_sourcefile_from_source`(frontend, tmp_path) | Test the from_source constructor for Sourcefile objects.
`test_sourcefile_lazy_comments`(frontend) | Make sure that lazy construction can handle comments on source file level (i.e. outside a program unit).
`test_sourcefile_lazy_construction`(frontend, ...) | Test delayed ("lazy") parsing of sourcefile content
`test_sourcefile_pp_directives`(here, frontend) |
`test_sourcefile_pp_include`(here, frontend) |
`test_sourcefile_pp_macros`(here, frontend) |
`test_sourcefile_properties`(here, frontend, ...) | Test that all subroutines and functions are discovered and exposed via subroutines and all_subroutines properties.

fixture_here()

test_sourcefile_properties(here, frontend, tmp_path)

  Test that all subroutines and functions are discovered and exposed via subroutines and all_subroutines properties.

test_sourcefile_from_source(frontend, tmp_path)

  Test the from_source constructor for Sourcefile objects.

test_sourcefile_pp_macros(here, frontend)

test_sourcefile_pp_directives(here, frontend)

test_sourcefile_pp_include(here, frontend)

test_sourcefile_cpp_preprocessing(here, frontend)

  Test the use of the external CPP-preprocessor.

test_sourcefile_cpp_stmt_func(here, frontend, tmp_path)

  Test the correct identification of statement functions after inlining by preprocessor.

test_sourcefile_lazy_construction(frontend, tmp_path)

  Test delayed (“lazy”) parsing of sourcefile content

test_sourcefile_lazy_comments(frontend)

  Make sure that lazy construction can handle comments on source file level (i.e. outside a program unit)

test_sourcefile_clone(frontend, tmp_path)

  Make sure cloning a source file works as expected