From e4807829973dd694ede955f46835334bd3b8ea3c Mon Sep 17 00:00:00 2001
From: Frank Winklmeier <Frank.Winklmeier@cern.ch>
Date: Thu, 30 Mar 2017 11:30:42 +0200
Subject: [PATCH] Fix reference file lookup for trigger ATN tests (ATR-16068)

Changed the reference file lookup from using an environment variable to
using the release metadata file. That should hopefully be more reliable than
assuming some fixed release layout.
---
 .../TrigValTools/bin/trigtest.pl              | 35 ++++++++-----------
 1 file changed, 15 insertions(+), 20 deletions(-)

diff --git a/Trigger/TrigValidation/TrigValTools/bin/trigtest.pl b/Trigger/TrigValidation/TrigValTools/bin/trigtest.pl
index ec5100a886af..534a8c6ee5a5 100755
--- a/Trigger/TrigValidation/TrigValTools/bin/trigtest.pl
+++ b/Trigger/TrigValidation/TrigValTools/bin/trigtest.pl
@@ -1061,26 +1061,8 @@ sub run_test($){
     #make short file with last 600 lines only
     systemcall("tail -600 $logfile > $logfiletail");
  
-    # get the nightly we are using form the CMTPATH    
-    my $nightly = "";
-    my $cmt = "";
-    if(defined $ENV{'CMAKE_PREFIX_PATH'}){
-        $cmt = $ENV{'CMAKE_PREFIX_PATH'};
-    }
-    else{        
-        $cmt = $ENV{'CMTPATH'};
-    }
-    my $nightlykey =  'builds/nightlies/';
-    my $keylength  = length $nightlykey;
-    my $start  = rindex($cmt,$nightlykey) ;
-    if( $start > -1 ) {
-      $start =  $start + $keylength;
-      #  $nightly should be dev,devval, bugfix, val, ect.
-      $nightly = substr $cmt, $start;
-      my $nextslash = index $nightly, '/' ;
-      $nightly = substr $nightly, 0, $nextslash ;
-      $nightly = $nightly . "/latest";
-    } 
+    my %reldata = release_metadata();
+    my $nightly = (exists $reldata{'nightly name'} ? $reldata{'nightly name'} : "UNKNOWN");
     print "$prog: looking for histograms and references for nightly $nightly \n";
 
     # rootcomp
@@ -1371,3 +1353,16 @@ sub resolveSymlinks() {
   chomp $respath;
   return $respath;
 }
+
+# Read ReleaseData file and return dictionary with content
+sub release_metadata() {
+    my %data;
+    my @dir = grep(/$ENV{'AtlasProject'}/, split(':',$ENV{'LD_LIBRARY_PATH'}));
+    open RELDATA, "$dir[0]/../ReleaseData" or print "=== Alert! Cannot open ReleaseData file\n";
+    while (<RELDATA>) {
+        chomp;
+        my @kv = split(':');
+        $data{$kv[0]} = $kv[1];
+    }
+    return %data;
+}
-- 
GitLab