Changeset 7527e63 for src/tests


Ignore:
Timestamp:
Aug 16, 2016, 3:20:06 PM (8 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
1f6d4624
Parents:
950f7a7 (diff), 7880579 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
src/tests
Files:
2 added
3 deleted
12 edited

Legend:

Unmodified
Added
Removed
  • src/tests/.expect/32/extension.txt

    r950f7a7 r7527e63  
    100100    ((void)((__extension__ __a__i_2 , __extension__ __b__i_2) , __extension__ __c__i_2));
    101101}
    102 __attribute__ ((constructor(),)) static void _init_extension(void){
    103     int _global_init0;
    104     ((void)((*((int *)(&__a__i_1)))=_global_init0) /* ?{} */);
    105     int _global_init1;
    106     ((void)((*((int *)(&__b__i_1)))=_global_init1) /* ?{} */);
    107     int _global_init2;
    108     ((void)((*((int *)(&__c__i_1)))=_global_init2) /* ?{} */);
    109 }
    110 __attribute__ ((destructor(),)) static void _destroy_extension(void){
    111     ((void)((*((int *)(&__c__i_1)))) /* ^?{} */);
    112     ((void)((*((int *)(&__b__i_1)))) /* ^?{} */);
    113     ((void)((*((int *)(&__a__i_1)))) /* ^?{} */);
    114 }
  • src/tests/.expect/32/gccExtensions.txt

    r950f7a7 r7527e63  
    55extern void exit(int __status);
    66extern int printf(const char *__restrict __format, ...);
     7extern int __x__i_1;
    78int main(int __argc__i_1, const char **__argv__PPCc_1){
    89    asm ( "nop" :  :  :  );
    910    asm ( "nop" :  :  :  );
    1011    asm ( "nop" :  :  :  );
     12    static int __y__i_2;
     13    int __src__i_2;
     14    int __dst__i_2;
     15    asm volatile ( "mov %1, %0\n\tadd $1, %0" :  :  :  );
     16    asm volatile ( "mov %1, %0\n\tadd $1, %0" : "=r" ( __dst__i_2 ) :  :  );
     17    asm volatile ( "mov %1, %0\n\tadd $1, %0" : "=r" ( __dst__i_2 ) : "r" ( __src__i_2 ) :  );
     18    asm ( "mov %1, %0\n\tadd $1, %0" : "=r" ( __dst__i_2 ), "=r" ( __src__i_2 ) : [ __src__i_2 ] "r" ( __dst__i_2 ) : "r0" );
    1119    double _Complex __c1__Xd_2;
    1220    double _Complex __c2__Xd_2;
     
    151159    struct s4 __y2__3ss4_2;
    152160    ((void)___constructor__F_P3ss4_autogen___2(((struct s4 *)(&__y2__3ss4_2))));
    153     int __m1__A0i_2[((long unsigned int )10)];
    154     int __m2__A0A0i_2[((long unsigned int )10)][((long unsigned int )10)];
    155     int __m3__A0A0i_2[((long unsigned int )10)][((long unsigned int )10)];
     161    int __m1__A0i_2[((unsigned int )10)];
     162    int __m2__A0A0i_2[((unsigned int )10)][((unsigned int )10)];
     163    int __m3__A0A0i_2[((unsigned int )10)][((unsigned int )10)];
    156164    int _retVal0 = { 0 };
    157165    ((void)(_retVal0=0) /* ?{} */);
  • src/tests/.expect/64/extension.txt

    r950f7a7 r7527e63  
    100100    ((void)((__extension__ __a__i_2 , __extension__ __b__i_2) , __extension__ __c__i_2));
    101101}
    102 __attribute__ ((constructor(),)) static void _init_extension(void){
    103     int _global_init0;
    104     ((void)((*((int *)(&__a__i_1)))=_global_init0) /* ?{} */);
    105     int _global_init1;
    106     ((void)((*((int *)(&__b__i_1)))=_global_init1) /* ?{} */);
    107     int _global_init2;
    108     ((void)((*((int *)(&__c__i_1)))=_global_init2) /* ?{} */);
    109 }
    110 __attribute__ ((destructor(),)) static void _destroy_extension(void){
    111     ((void)((*((int *)(&__c__i_1)))) /* ^?{} */);
    112     ((void)((*((int *)(&__b__i_1)))) /* ^?{} */);
    113     ((void)((*((int *)(&__a__i_1)))) /* ^?{} */);
    114 }
  • src/tests/.expect/64/gccExtensions.txt

    r950f7a7 r7527e63  
    55extern void exit(int __status);
    66extern int printf(const char *__restrict __format, ...);
     7extern int __x__i_1;
    78int main(int __argc__i_1, const char **__argv__PPCc_1){
    89    asm ( "nop" :  :  :  );
    910    asm ( "nop" :  :  :  );
    1011    asm ( "nop" :  :  :  );
     12    static int __y__i_2;
     13    int __src__i_2;
     14    int __dst__i_2;
     15    asm volatile ( "mov %1, %0\n\tadd $1, %0" :  :  :  );
     16    asm volatile ( "mov %1, %0\n\tadd $1, %0" : "=r" ( __dst__i_2 ) :  :  );
     17    asm volatile ( "mov %1, %0\n\tadd $1, %0" : "=r" ( __dst__i_2 ) : "r" ( __src__i_2 ) :  );
     18    asm ( "mov %1, %0\n\tadd $1, %0" : "=r" ( __dst__i_2 ), "=r" ( __src__i_2 ) : [ __src__i_2 ] "r" ( __dst__i_2 ) : "r0" );
     19    L2: L1: asm goto ( "frob %%r5, %1; jc %l[L1]; mov (%2), %%r5" :  : "r" ( __src__i_2 ), "r" ( (&__dst__i_2) ) : "r5", "memory" : L1, L2 );
    1120    double _Complex __c1__Xd_2;
    1221    double _Complex __c2__Xd_2;
  • src/tests/Makefile.am

    r950f7a7 r7527e63  
    1111## Created On       : Sun May 31 09:08:15 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Sat Jul  9 11:23:24 2016
    14 ## Update Count     : 35
     13## Last Modified On : Mon Aug 15 12:24:54 2016
     14## Update Count     : 39
    1515###############################################################################
    1616
     
    2727
    2828all-local :
    29         +python test.py vector_test avl_test operators numericConstants expression enum asmName array typeof cast dtor-early-exit init_once
     29        @+python test.py vector_test avl_test operators numericConstants expression enum array typeof cast dtor-early-exit init_once
    3030
    3131all-tests :
    32         +python test.py --all
     32        @+python test.py --all          # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program
    3333
    3434clean-local :
    35         -rm -f ${EXTRA_PROGRAMS}
     35        rm -f ${EXTRA_PROGRAMS}
    3636
    3737list :
    38         +python test.py --list
     38        @+python test.py --list
    3939
    4040constant0-1DP : constant0-1.c
  • src/tests/Makefile.in

    r950f7a7 r7527e63  
    635635
    636636all-local :
    637         +python test.py vector_test avl_test operators numericConstants expression enum asmName array typeof cast dtor-early-exit init_once
     637        @+python test.py vector_test avl_test operators numericConstants expression enum array typeof cast dtor-early-exit init_once
    638638
    639639all-tests :
    640         +python test.py --all
     640        @+python test.py --all          # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program
    641641
    642642clean-local :
    643         -rm -f ${EXTRA_PROGRAMS}
     643        rm -f ${EXTRA_PROGRAMS}
    644644
    645645list :
    646         +python test.py --list
     646        @+python test.py --list
    647647
    648648constant0-1DP : constant0-1.c
  • src/tests/exception.c

    r950f7a7 r7527e63  
    1111        x/4;
    1212    } catch( int ) {
    13     } catch( int x ) {
     13    } catch( float x ) {
    1414    } catch( struct { int i; } ) {
    1515    } catch( struct { int i; } x ) {
     
    2121    } catch( * struct { int i; } x ) {
    2222    } catch( ... ) {
    23 //    } finally {
     23    } finally {
    2424    } // try
    2525}
  • src/tests/gccExtensions.c

    r950f7a7 r7527e63  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// gccExtensions.c --
     8//
     9// Author           : Peter A. Buhr
     10// Created On       : Sun Aug 14 17:28:17 2016
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Aug 15 12:44:35 2016
     13// Update Count     : 5
     14//
     15
     16extern int x asm( "xx" );
     17
    118int main(int argc, char const *argv[]) {
    219        asm( "nop" );
    320        __asm( "nop" );
    421        __asm__( "nop" );
     22
     23        static int y asm( "yy" );
     24//      static * int z asm( "zz" );                                                     // CFA declaration
     25
     26        int src;
     27        int dst;
     28
     29        asm volatile ( "mov %1, %0\n\t"
     30                                   "add $1, %0" : : : );
     31
     32        asm volatile ( "mov %1, %0\n\t"
     33                                   "add $1, %0"
     34                                   : "=" "r" (dst));
     35
     36        asm volatile ( "mov %1, %0\n\t"
     37                                   "add $1, %0"
     38                                   : "=r" (dst)
     39                                   : "r" (src));
     40
     41        asm ( "mov %1, %0\n\t"
     42                  "add $1, %0"
     43                  : "=r" (dst), "=r" (src)
     44                  : [src] "r" (dst)
     45                  : "r0");
     46
     47  L1: L2:
     48        asm goto ( "frob %%r5, %1; jc %l[L1]; mov (%2), %%r5"
     49                           : /* No outputs. */
     50                           : "r"(src), "r"(&dst)
     51                           : "r5", "memory"
     52                           : L1, L2 );
    553
    654        __complex__ c1;
     
    57105        return 0;
    58106}
     107
     108// Local Variables: //
     109// tab-width: 4 //
     110// compile-command: "cfa gccExtensions.c" //
     111// End: //
  • src/tests/init_once.c

    r950f7a7 r7527e63  
    9292init_once y = x;
    9393
     94void static_variable() {
     95        static init_once x;
     96}
     97
    9498int main() {
    9599        // local variables
     
    179183                }
    180184        }
     185
     186        // function-scoped static variable
     187        for (int i = 0; i < 10; i++) {
     188                static_variable();
     189        }
    181190}
    182191
  • src/tests/labelledExit.c

    r950f7a7 r7527e63  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// labelledExit.c --
     8//
     9// Author           : Peter A. Buhr
     10// Created On       : Wed Aug 10 07:29:39 2016
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed Aug 10 07:30:15 2016
     13// Update Count     : 1
     14//
     15
    116int foo() {
    217        int i;
     
    136151        else
    137152                i += 1;
    138 
    139153}
    140154
    141 int main(int argc, char const *argv[]) {
     155int main( int argc, char const *argv[] ) {
    142156        /* code */
    143         return 0;
    144157}
    145158
    146159// Local Variables: //
    147160// tab-width: 4 //
    148 // compile-command: "cfa LabelledExit.c" //
     161// compile-command: "cfa labelledExit.c" //
    149162// End: //
  • src/tests/switch.c

    r950f7a7 r7527e63  
    1010// Created On       : Tue Jul 12 06:50:22 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 12 18:02:23 2016
    13 // Update Count     : 22
     12// Last Modified On : Thu Aug  4 11:44:29 2016
     13// Update Count     : 31
    1414//
    1515
     
    3333        } // switch
    3434
    35         // switch (3 ) {
    36         //      int j;
    37         //   case 3:
    38         //      break;
    39         //   case 4:
    40         //      j = 0;
    41         // }
     35        switch ( 3 ) {
     36                int j;
     37          case 3:
     38                break;
     39          case 4:
     40                j = 0;
     41        }
     42
     43        switch ( i ) {
     44          case 1, 2, 3:
     45                switch ( i ) {
     46                  case 2, 3, 4:
     47                        7;
     48                }
     49        }
    4250
    4351        switch ( i ) {
     
    4957          default:
    5058                i = 3;
    51           case 3:
     59          case 19:
    5260          case 'A' ... 'Z':
    53           case 5 ... 6:
    54           case 2, 4:
     61          case 1 ... 6:
     62          case 20, 30:
    5563                j = 3;
    5664                f( 3 );
     
    7886                struct S { int i; };
    7987                S s;
    80           case 3:
     88          case 19:
    8189          case 'A' ... 'Z':
    82           case 5 ... 6:
    83           case 2, 4, 7:
     90          case 0 ... 6:
     91          case 20, 30, 40:
    8492                i = 3;
    8593                f( 3 );
  • src/tests/test.py

    r950f7a7 r7527e63  
    2323# parses the Makefile to find the machine type (32-bit / 64-bit)
    2424def getMachineType():
    25         with open('Makefile') as file:
    26                 makefile = file.read()
    27                 m = re.search("CFA_FLAGS\s*=\s*-m(.*)", makefile)
    28                 return m.group(1) if m else '64'
     25        sh('echo "int main() { return 0; }" > .dummy.c')
     26        sh("make .dummy", print2stdout=False)
     27        _, out = sh("file .dummy", print2stdout=False)
     28        sh("rm -f .dummy.c > /dev/null 2>&1")
     29        sh("rm -f .dummy > /dev/null 2>&1")
     30        return re.search("ELF\s([0-9]+)-bit", out).group(1)
    2931
    3032# reads the directory ./.expect and indentifies the tests
     
    9799                return False
    98100
    99 # find the test data for a given test name
    100 def filterTests(testname) :
    101         found = [test for test in allTests if test.name == testname]
    102         return (found[0] if len(found) == 1 else Test(testname, testname) )
    103 
    104101################################################################################
    105102#               running test functions
     
    139136                if not dry_run and fileContainsOnly(out_file, "make: *** No rule to make target `%s'.  Stop." % test.name) :
    140137                        retcode = 1;
    141                         error = "\t\tNo make target for test %s!" % test
     138                        error = "\t\tNo make target for test %s!" % test.name
    142139                        sh("rm %s" % out_file, False)
    143140
     
    250247        # already existing tests and create new info for the new tests
    251248        if options.regenerate_expected :
    252                 tests = map(filterTests, options.tests)
     249                for testname in options.tests :
     250                        if testname.endswith(".c") or testname.endswith(".cc") or testname.endswith(".cpp") :
     251                                print('ERROR: "%s", tests are not allowed to end with a C/C++/CFA extension, ignoring it' % testname, file=sys.stderr)
     252                        else :
     253                                found = [test for test in allTests if test.name == testname]
     254                                tests.append( found[0] if len(found) == 1 else Test(testname, testname) )
    253255
    254256        else :
Note: See TracChangeset for help on using the changeset viewer.