Skip to content

Commit

Permalink
updates to test validations
Browse files Browse the repository at this point in the history
They don't really work great right now...
  • Loading branch information
Ed94 committed Oct 28, 2024
1 parent 1e4d5ce commit 1417a68
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 21 deletions.
47 changes: 45 additions & 2 deletions test/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,64 @@
#define GEN_BENCHMARK
#include "gen.cpp"
#include "gen.builder.cpp"
#include "gen.scanner.cpp"
#include "sanity.cpp"
#include "SOA.cpp"

#ifdef GEN_SYSTEM_WINDOWS
#include <process.h>
#endif

using namespace gen;

void format_file( char const* path )
{
String resolved_path = String::make(GlobalAllocator, to_str(path));

String style_arg = String::make(GlobalAllocator, txt("-style=file:"));
style_arg.append("../scripts/.clang-format ");

// Need to execute clang format on the generated file to get it to match the original.
#define clang_format "clang-format "
#define cf_format_inplace "-i "
#define cf_verbose "-verbose "
String command = String::make( GlobalAllocator, clang_format );
command.append( cf_format_inplace );
command.append( cf_verbose );
command.append( style_arg );
command.append( resolved_path );
log_fmt("\tRunning clang-format on file:\n");
system( command );
log_fmt("\tclang-format finished reformatting.\n");
#undef cf_cmd
#undef cf_format_inplace
#undef cf_style
#undef cf_verbse
}

Code dump_to_scratch_and_retireve( Code code )
{
Builder ecode_file_temp = Builder::open("gen/scratch.hpp");
ecode_file_temp.print(code);
ecode_file_temp.write();
format_file("gen/scratch.hpp");
Code result = scan_file( "gen/scratch.hpp" );
remove("gen/scratch.hpp");
return result;
}

#include "validate.original.cpp"
#include "validate.singleheader.cpp"

int gen_main()
{
using namespace gen;
log_fmt("\ngen_time:");

// check_sanity();

// check_SOA();

validate_original_files_ast();
// validate_original_files_ast();
validate_singleheader_ast();

return 0;
Expand Down
44 changes: 31 additions & 13 deletions test/validate.original.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,6 @@
#include "gen.scanner.hpp"
using namespace gen;

#ifdef GEN_SYSTEM_WINDOWS
#include <process.h>
#endif

#define path_root "../"
#define path_project path_root "project/"
#define path_scripts path_root "scripts/"
Expand All @@ -26,13 +22,32 @@ void validate_file_ast( char const* path, char const* path_gen )

String path_temp = String::make_length( GlobalAllocator, path_gen, str_len( path_gen ) );

// Sleep(100);
FileContents file = file_read_contents( GlobalAllocator, true, path );
// FileError error = file_open_mode( & path_temp, EFileMode_WRITE, path );
// if ( error != EFileError_NONE )
// {
// log_failure( "gen::File::open - Could not open file: %s", path);
// return;
// }

// Duplicate and format
{
// Sleep(100);
FileInfo scratch;
FileError error = file_open_mode( & scratch, EFileMode_WRITE, "gen/scratch.cpp" );
if ( error != EFileError_NONE ) {
log_failure( "gen::File::open - Could not open file: %s", "gen/scratch.cpp");
return;
}
// Sleep(100);
b32 result = file_write( & scratch, file.data, file.size );
if ( result == false ) {
log_failure("gen::File::write - Failed to write to file: %s\n", file_name( & scratch ) );
file_close( & scratch );
return;
}
file_close( & scratch );
// Sleep(100);
format_file( "gen/scratch.cpp" );
// Sleep(100);

file = file_read_contents( GlobalAllocator, true, "gen/scratch.cpp" );
}

u64 time_start = time_rel_ms();
CodeBody ast = parse_global_body( { file.size, (char const*)file.data } );
Expand Down Expand Up @@ -85,8 +100,11 @@ void validate_original_files_ast()
gen::init();
log_fmt("\nvalidate_original_files_ast:\n");

PreprocessorDefines.append( get_cached_string( txt("GEN_DEF_INLINE") ));
PreprocessorDefines.append( get_cached_string( txt("GEN_IMPL_INLINE") ));
PreprocessorDefines.append( get_cached_string( txt("GEN_FILE_SEEK_PROC(")));
PreprocessorDefines.append( get_cached_string( txt("GEN_FILE_READ_AT_PROC(")));
PreprocessorDefines.append( get_cached_string( txt("GEN_FILE_WRITE_AT_PROC(")));
PreprocessorDefines.append( get_cached_string( txt("GEN_FILE_CLOSE_PROC(")));
PreprocessorDefines.append( get_cached_string( txt("GEN_FILE_OPEN_PROC(")));

// Helpers
{
Expand All @@ -99,7 +117,7 @@ void validate_original_files_ast()
// Dependencies
{
#define validate( path ) validate_file_ast( path_dependencies path, "gen/original/dependencies/" path )
validate( "header_start.hpp" );
validate( "platform.hpp" );
validate( "macros.hpp" );
validate( "basic_types.hpp" );
validate( "debug.hpp" );
Expand Down
33 changes: 27 additions & 6 deletions test/validate.singleheader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,38 @@
#include "gen.scanner.hpp"
using namespace gen;

#ifdef GEN_SYSTEM_WINDOWS
#include <process.h>
#endif

void validate_singleheader_ast()
{
#define root_dir "../"
gen::init();
log_fmt("\validate_singleheader_ast:\n");
log_fmt("\nvalidate_singleheader_ast:\n");

FileContents file = file_read_contents( GlobalAllocator, true, root_dir "singleheader/gen/gen.hpp" );

// Duplicate and format
{
// Sleep(100);
FileInfo scratch;
FileError error = file_open_mode( & scratch, EFileMode_WRITE, "gen/scratch.cpp" );
if ( error != EFileError_NONE ) {
log_failure( "gen::File::open - Could not open file: %s", "gen/scratch.cpp");
return;
}
// Sleep(100);
b32 result = file_write( & scratch, file.data, file.size );
if ( result == false ) {
log_failure("gen::File::write - Failed to write to file: %s\n", file_name( & scratch ) );
file_close( & scratch );
return;
}
file_close( & scratch );
// Sleep(100);
format_file( "gen/scratch.cpp" );
// Sleep(100);

file = file_read_contents( GlobalAllocator, true, "gen/scratch.cpp" );
}

FileContents file = file_read_contents( GlobalAllocator, true, root_dir "singleheader/gen/gen.hpp" );
u64 time_start = time_rel_ms();
CodeBody ast = parse_global_body( { file.size, (char const*)file.data } );
log_fmt("\nAst generated. Time taken: %llu ms\n", time_rel_ms() - time_start);
Expand Down

0 comments on commit 1417a68

Please sign in to comment.