This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] benchtests: Add include-sources directive.


On Wed, Oct 09, 2013 at 12:09:48AM +0300, Torvald Riegel wrote:
> This adds the "include-sources" directive to scripts/bench.pl.  This
> allows for including source code (vs including headers, which might get
> a different search path) after the inclusion of any headers.  We need
> such source code to run tests that are stateful across iterations of the
> benchmarks, or need helper functions (see the other patch about the
> pthread_once benchtest for an example).
> 
> Tested on the pthread_once benchtest.  OK?

Thanks, this looks good to me.

Siddhesh

> commit b256e4428b509e76e9928750ffdf195e3390097c
> Author: Torvald Riegel <triegel@redhat.com>
> Date:   Tue Oct 8 14:04:10 2013 +0300
> 
>     benchtests: Add include-sources directive.
>     
>     	* scripts/bench.pl: Add include-sources directive.
>     	* benchtests/README: Update documentation.
> 
> diff --git a/ChangeLog b/ChangeLog
> index d423483..1acd57c 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,8 @@
> +2013-10-08  Torvald Riegel  <triegel@redhat.com>
> +
> +	* scripts/bench.pl: Add include-sources directive.
> +	* benchtests/README: Update documentation.
> +
>  2013-10-08  Yogesh Chaudhari  <mr.yogesh@gmail.com>
>  
>  	[BZ #156]

The ChangeLog diff is not required during patch review btw.

> diff --git a/benchtests/README b/benchtests/README
> index 5faca53..0c643a6 100644
> --- a/benchtests/README
> +++ b/benchtests/README
> @@ -51,9 +51,12 @@ one to add `foo' to the bench tests:
>      inputs.
>    - ret: This should be assigned the type that the function returns.  This
>      directive may be skipped if the function does not return a value.
> -  - includes: This should be assigned a comma separated list of headers that
> +  - includes: This should be assigned a comma-separated list of headers that
>      need to be included to provide declarations for the function and types it
> -    may need.
> +    may need (specifically, this includes using "#include <header>").
> +  - include-sources: This should be assigned a comma-separated list of source
> +    files that need to be included to provide definitions of global variables
> +    and functions (specifically, this includes using "#include "source").
>    - name: See following section for instructions on how to use this directive.
>  
>    Lines beginning with a single hash '#' are treated as comments.  See
> diff --git a/scripts/bench.pl b/scripts/bench.pl
> index 5fe95d0..492ab81 100755
> --- a/scripts/bench.pl
> +++ b/scripts/bench.pl
> @@ -34,7 +34,8 @@ my $getret = "";
>  my $variant = "";
>  my @curvals;
>  my %vals;
> -my @include_files;
> +my @include_headers;
> +my @include_sources;
>  my $incl;
>  
>  open INPUTS, "<$func-inputs" or die $!;
> @@ -43,7 +44,7 @@ LINE:while (<INPUTS>) {
>    chomp;
>  
>    # Directives.
> -  if (/^## (\w+): (.*)/) {
> +  if (/^## ([\w-]+): (.*)/) {
>      # Function argument types.
>      if ($1 eq "args") {
>        @args = split(":", $2);
> @@ -55,7 +56,11 @@ LINE:while (<INPUTS>) {
>      }
>  
>      elsif ($1 eq "includes") {
> -      @include_files = split (",", $2);
> +      @include_headers = split (",", $2);
> +    }
> +
> +    elsif ($1 eq "include-sources") {
> +      @include_sources = split (",", $2);
>      }
>  
>      # New variant.  This is the only directive allowed in the body of the
> @@ -72,6 +77,10 @@ LINE:while (<INPUTS>) {
>        undef @curvals;
>        next LINE;
>      }
> +
> +    else {
> +      die "Unknown directive: ".$1;
> +    }
>    }
>  
>    # Skip over comments.
> @@ -86,10 +95,15 @@ my $bench_func = "#define CALL_BENCH_FUNC(v, i) $func (";
>  
>  
>  # Print the definitions and macros.
> -foreach $incl (@include_files) {
> +foreach $incl (@include_headers) {
>    print "#include <" . $incl . ">\n";
>  }
>  
> +# Print the source files.
> +foreach $incl (@include_sources) {
> +  print "#include \"" . $incl . "\"\n";
> +}
> +
>  if (@args > 0) {
>    # Save values in the last variant.
>    $vals{$variant} = \@curvals;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]