]> git.lyx.org Git - lyx.git/blobdiff - development/keystest/report_html.sh
remove special TEX2LYX code in Spacing,h
[lyx.git] / development / keystest / report_html.sh
old mode 100644 (file)
new mode 100755 (executable)
index 62870ed..0940c06
 #!/bin/bash
-LT=development/keystest
+#LT=development/keystest
+LT=`dirname $0`
 
-# echo 'grep "#1 " $LT/out/GDB | sed 's/0x[^ )]*[ )]/.*/g'  | sort | uniq' >> report.sh
-
-UNIQUE_LINE=1
-SRC=
-if [ -e out/log ]
-then   
-   LT=.
+GEOM=320x200
+QUALITY=85
+if [ -z "$KEYCODE_DIR" ]
+then
+       KEYCODE_DIR=out
 fi
+#convert -normalize -scale $GEOM -quality $QUALITY $f $GEOM/$f
 
-while [ ! -e $LT/out/log ]
-do
-  cd ..
-  if [ `pwd` = '/' ]
-  then
-     exit
-  fi
-done
+UNIQUE_LINE=1
 
-OUT=$LT/out
+OUT=$LT/out/html4
+mkdir -p $OUT
 rm $OUT/index*.html
-#rm $OUT/indexreport.html
 ls $OUT/*.html
 
+CPP_HTML_DIR_REL=cpp_html
+CPP_HTML_DIR=$out/cpp_html
+
 strings $LT/out/GDB.* > $LT/out/GDBs 
 grep "#$UNIQUE_LINE " $LT/out/GDBs > $LT/out/list
-#cat $LT/out/list | grep -o ' in [[:alnum:]:]* ' | sort | uniq| tee $LT/out/listuniq
-#cat $LT/out/list | grep -o ' in [[:alnum:]:]* ' | sort | uniq| tee $LT/out/listuniq
 cat $LT/out/list | sed 's/0x[^ )]*[ )]/.*/g'  | sort | uniq | tee $LT/out/listuniq
 
-NUM_REPORTS=`wc -l < $LT/out/list`
-echo NUM_REPORTS $NUM_REPORTS
+echo '<html>' >> $OUT/indexreport.html
+
+tidy_keycode () {
+while  read -r k
+do
+       if [ "$k" = Raiselyx ] 
+       then
+               echo -n '\[!Raiselyx]'
+       elif  [ "$k" = Loop ] 
+       then
+               echo -n '\[!Loop]'
+       else
+               echo -n "$k" | sed 's/^KK: //'
+       fi
+done
+}
+
+html_keycode() {
+         cat "$f_base.KEYCODEpure" | tidy_keycode 
+         echo -n '<font color=gray>'
+         cat "$f_base.KEYCODEpure+" | tidy_keycode 
+         echo -n '</font>'
 
-echo > $LT/out/overview
+}
 
-echo '<html>' >> $OUT/indexreport.html
+gdb2html() {
+echo g $g
+cat $g | sed 's/&/&amp/g' | sed 's/</&lt/g'  | while read -r l
+do
+       #c=`echo $l | grep -i -o "at [[:alnum:]./]*:[0-9]*"`
+       #We may want to support slashes later, but we'd have to support browsing
+       #Qt source for that to be useful for LyX
+       c=`echo $l | grep -i -o "at [[:alnum:].]*:[0-9]*"`
+       if [ -z "$c" ]
+       then
+               echo -- "$l" | sed s/--//
+       else
+               cpp=`echo "$c" | sed 's/at //' | sed 's/:.*//g'`
+               #cpp=`basename $cpp`
+               echo cpp $cpp
+               lineno=`echo "$c" | sed 's/.*://g'`
+               echo $cpp,$lineno 1>&2
+               #if [ -e "$CPP_HTML_DIR/$cpp.html" ]
+               if true
+               then
+                       #echo "$l" | sed "s/$c/<a href=$CPP_HTML_DIR_REL\/$cpp.html\#line$lineno>$c<\/a>/"
+                       echo "$l" | sed "s?$c?<a href=$CPP_HTML_DIR_REL\/$cpp.html\#line$lineno>$c<\/a>?"
+               else
+                       echo "$l"
+               fi
+       fi
+done | sed 's/^/<br\/>/'
+}
 
-#cat $LT/out/listuniq | while read l 
-for f in $LT/out/*GDB
+echo beginning
+#for file in `find $LT/out/ -anewer $LT/out/html | grep replay/last_crash_sec`
+#for file in `find $KEYCODE_DIR | grep save/.*KEYCODEpure`
+for file in `find $KEYCODE_DIR -anewer oldfile | grep save/.*KEYCODEpure$`
 do
+ lcs_file=`echo $file | sed 's/save\/.*//g'`last_crash_sec
+ echo last_crash_sec file: $lcs_file
+ SEC2=`cat $lcs_file`
+ SEC=`basename $file | sed s/[.].*$//g`
+ echo SEC .$SEC. .$SEC2.
+ #if [ ! $SEC -eq $SEC2 ]
+ #then
+       #break
+ #fi
+ echo SEC $SEC
+ #f_base=`echo $file | sed s/last_crash_sec/$SEC/g`
+ f_base=`dirname $file`'/'$SEC
+ echo f_base $f_base
+ NUM_KEYCODES=`wc -l < "$f_base.KEYCODEpure"`
+ echo NUM_KEYCODES=$NUM_KEYCODES...
+ if [ "$NUM_KEYCODES" -lt 80 ]  
+ then
+  echo f_base $f_base
+  f=$f_base.GDB
   echo $f
   g=$f.short
-  if egrep '([Ii][Nn] .*[:[:alnum:]][:][0-9]*[^0-9]|#0 | signal SIG)' -A9999  <$f >$g
+  egrep '([Ii][Nn] .*[:[:alnum:]][:][0-9]*[^0-9]|#0 | signal SIG[^T])' -A9999  <$f >$g
+  if true
   then
-       #egrep '(([Ii][Nn]|at) .*[:[:alnum:]][:][0-9]*[^0-9]|#0 | signal SIG)' -A9999  <$f
-       SEC=`echo $f | sed s/[^[:digit:]]//g`
-       #IN_AT=`egrep -o '([Ii][Nn]|at) ([:lower:]* )[:_[:alnum:]]*(::[:_[:alnum:]]*|:[0-9]*)' <$f | head -n 1  `
-       IN_AT=`egrep -o '([Ii][Nn]|at) ([:lower:]* )?[:_[:alnum:]]*(::[:_[:alnum:]]*|:[0-9]*)' <$f | head -n 1  `
+       IN_AT=`egrep -o '([Ii][Nn]|at) ([:lower:]* )?[:_[:alnum:]]*(::[:_[:alnum:]]*|:[0-9]*)' <$f | grep -v lyx_exit | grep -v [Aa]ssert | head -n 1  `
        SIGNAL=`grep -o ' signal SIG[[:alnum:]_]*[, ]' <$g | sed s/[^[:upper:]]//g | head -n 1`
        TITLE="$SIGNAL $IN_AT"
        TITLE_=`echo $TITLE|sed s/[^[:alnum:]]/_/g`
-       INDEX="index_$TITLE_.html"
+       INDEX="index.html"
        echo TITLE $TITLE
        echo INDEX $INDEX
-       if [ ! -e  $LT/out/$INDEX ]
-       then    
-               echo NEW $INDEX
-               echo '<html>' >> $LT/out/$INDEX
-               echo -n '<a href="'"$INDEX"'">'"$TITLE</a>" >> $OUT/indexreport.html
-               echo '[<a href="'"$SEC.html"'">'1'</a>]<br/>' >> $OUT/indexreport.html
-       else
-               echo exists $INDEX
+       echo NEW $INDEX
+       echo '<html>' >> $LT/out/$INDEX
+       echo -n "<a href=\"$SEC.html\">$TITLE</a> " >> $OUT/indexreport.html
+       html_keycode >> $OUT/indexreport.html
+       if ls $f_base.s*.png 
+       then
+               echo -n "<a href=\"$SEC.screenshot.html\">screenshots</a>" >> $OUT/indexreport.html
        fi
+       echo -n '<br/> '>> $OUT/indexreport.html
+       echo >> $OUT/indexreport.html
+       echo -n '<br> '>> $LT/out/$INDEX
+       echo >> $LT/out/$INDEX
+
        ( echo '<html>'
          echo "<h1>$TITLE</h1>"
-         echo "<img src=$SEC.GDB.png>$TITLE</img>"
-#        head -n 20 $g | txt2html -pi | sed 's/^/<br\/>/' | sed 's/<br\/>$//g'
-         #head -n 20 $g | txt2html -pi | sed 's/^#/#<br\/>/' 
-#        cat $g | txt2html -pi | sed 's/^#/#<br\/>/' 
-         cat $g | sed 's/&/&amp/g' | sed 's/</&lt/g' | sed 's/^/<br\/>/'
+         html_keycode
+         echo "<a href=$SEC.KEYCODE>KEYCODES</a> "
+         echo "<a href=$SEC.GDB>GDB</a>"
+         #echo "<a href=$SEC.GDB.png><img src=$SEC.small.png/></a><br/><br/>"
+         echo "<a href=$SEC.screenshot.html><img src=$SEC.small.png/></a><br/><br/>"
+         gdb2html
        ) > $OUT/$SEC.html
        echo '<a href="'"$SEC.html"'">'$SEC'</a><br/>' >> $OUT/$INDEX
-       echo '<a href="'"$SEC.html"'">'$SEC'</a><br/>' 
+       echo '<a href="'"$SEC.html"'">'$SEC'</a><br/>'
+       if [ ! -e $OUT/$SEC.small.png ]
+       then  
+               convert -normalize -scale $GEOM $f.png $OUT/$SEC.small.png -quality 85
+       fi
+       chmod a+r $f $f.png $f_base.KEYCODE* $f_base.html $OUT/indexreport.html
+       ln $f $f.png $f_base.KEYCODE* $f_base.html $f_base.s*.png  $OUT/
+       if ls $f_base.s*.png 
+       then
+               $LT/make_screenshot_html.py $OUT $SEC > $OUT/$SEC.screenshot.html
+       fi
   fi
+ fi
 done
-exit
+mv $OUT/indexreport.html $OUT/indexreport.html.bak
+echo "<html>" >> $OUT/indexreport.html
+echo "<h1>List of bugs found</h1>" >> $OUT/indexreport.html
+sort -k 2 -t '>' < $OUT/indexreport.html.bak >> $OUT/indexreport.html
+
+firefox $OUT/indexreport.html