@ -105,7 +105,7 @@ def _EXPERIMENT_CHECK_TEXT(name):
"""
def ToCStr ( s , encoding = ' ascii ' ) :
def ToCStr ( s , encoding = " ascii " ) :
if isinstance ( s , str ) :
s = s . encode ( encoding )
result = " "
@ -325,9 +325,7 @@ class ExperimentsCompiler(object):
file_path_list = output_file . split ( " / " ) [ 0 : - 1 ]
file_name = output_file . split ( " / " ) [ - 1 ] . split ( " . " ) [ 0 ]
include_guard = (
f " GRPC_ { ' _ ' . join ( path . upper ( ) for path in file_path_list ) } _ { file_name . upper ( ) } _H "
)
include_guard = f " GRPC_ { ' _ ' . join ( path . upper ( ) for path in file_path_list ) } _ { file_name . upper ( ) } _H "
print ( f " #ifndef { include_guard } " , file = H )
print ( f " #define { include_guard } " , file = H )
@ -365,7 +363,11 @@ class ExperimentsCompiler(object):
print (
" inline bool Is %s Enabled() { return "
" Is %s ExperimentEnabled( %d ); } "
% ( SnakeToPascal ( exp . name ) , " Test " if mode == " test " else " " , i ) ,
% (
SnakeToPascal ( exp . name ) ,
" Test " if mode == " test " else " " ,
i ,
) ,
file = H ,
)
print ( file = H )
@ -404,7 +406,7 @@ class ExperimentsCompiler(object):
)
print ( " #include <grpc/support/port_platform.h> " , file = C )
print ( f " #include \ "{ header_file_path } \" " , file = C )
print ( f ' #include "{ header_file_path } " ' , file = C )
print ( file = C )
print ( " #ifndef GRPC_EXPERIMENTS_ARE_FINAL " , file = C )
print ( " namespace { " , file = C )
@ -441,7 +443,8 @@ class ExperimentsCompiler(object):
else :
experiments_metadata_var_name = " g_experiment_metadata "
print (
f " const ExperimentMetadata { experiments_metadata_var_name } [] = {{ " , file = C
f " const ExperimentMetadata { experiments_metadata_var_name } [] = {{ " ,
file = C ,
)
for _ , exp in self . _experiment_definitions . items ( ) :
print (
@ -461,17 +464,19 @@ class ExperimentsCompiler(object):
print ( " #endif " , file = C )
def GenTest ( self , output_file ) :
with open ( output_file , ' w ' ) as C :
with open ( output_file , " w " ) as C :
PutCopyright ( C , " // " )
PutBanner (
[ C ] ,
[ " Auto generated by tools/codegen/core/gen_experiments.py " ] ,
" // " )
" // " ,
)
defs = " "
test_body = " "
for _ , exp in self . _experiment_definitions . items ( ) :
defs + = _EXPERIMENTS_EXPECTED_VALUE (
SnakeToPascal ( exp . name ) , self . _final_return [ exp . default ] )
SnakeToPascal ( exp . name ) , self . _final_return [ exp . default ]
)
test_body + = _EXPERIMENT_CHECK_TEXT ( SnakeToPascal ( exp . name ) )
print ( _EXPERIMENTS_TEST_SKELETON ( defs , test_body ) , file = C )