Changeset 3eb5a478 for tests/exceptions
- Timestamp:
- Apr 2, 2020, 3:00:55 PM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 0f3d844
- Parents:
- 6d43cdde
- Location:
- tests/exceptions
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified tests/exceptions/.expect/interact.txt ¶
r6d43cdde r3eb5a478 8 8 9 9 resume catch on resume 10 11 termination catch, will resume 12 outer resume catch 13 14 resumption catch, will terminate 15 inner termination catch -
TabularUnified tests/exceptions/.expect/resume.txt ¶
r6d43cdde r3eb5a478 19 19 caught yin, will throw yang 20 20 caught yang 21 22 throwing first exception 23 caught first exception 24 throwing second exception 25 caught second exception 26 recaught first exception -
TabularUnified tests/exceptions/interact.cfa ¶
r6d43cdde r3eb5a478 5 5 6 6 TRIVIAL_EXCEPTION(star); 7 TRIVIAL_EXCEPTION(moon); 7 8 8 9 int main(int argc, char * argv[]) { … … 51 52 printf("resume catch on resume\n"); 52 53 } 54 printf("\n"); 55 56 // Resume a termination exception. 57 try { 58 try { 59 try { 60 THROW(&(star){}); 61 } catchResume (star *) { 62 printf("inner resume catch (error)\n"); 63 } 64 } catch (star * error) { 65 printf("termination catch, will resume\n"); 66 THROW_RESUME(error); 67 } 68 } catchResume (star *) { 69 printf("outer resume catch\n"); 70 } 71 printf("\n"); 72 73 // Terminate a resumption exception. 74 try { 75 try { 76 try { 77 THROW_RESUME(&(star){}); 78 } catch (star *) { 79 printf("inner termination catch\n"); 80 } 81 } catchResume (star * error) { 82 printf("resumption catch, will terminate\n"); 83 THROW(error); 84 } 85 } catch (star *) { 86 printf("outer terminate catch (error)\n"); 87 } 88 #if 0 89 printf("\n"); 90 91 // Unwinding a resumption catch does not break the system. 92 try { 93 try { 94 try { 95 try { 96 printf("throwing resume moon\n"); 97 THROW_RESUME(&(moon){}); 98 } catch (star *) { 99 printf("termination catch\n"); 100 } 101 printf("throwing resume star\n"); 102 THROW_RESUME(&(star){}); 103 } catchResume (star *) { 104 printf("resumption star catch\n"); 105 } 106 } catchResume (moon *) { 107 printf("resumption moon catch, will terminate\n"); 108 THROW(&(star){}); 109 } 110 } catchResume (star *) { 111 printf("outermost catch (error)\n"); 112 } 113 #endif 53 114 } -
TabularUnified tests/exceptions/resume.cfa ¶
r6d43cdde r3eb5a478 77 77 printf("caught yang\n"); 78 78 } 79 #ifdef FAILING80 79 printf("\n"); 81 80 … … 100 99 printf("caught second exception (bad location)\n"); 101 100 } 102 #endif103 101 }
Note: See TracChangeset
for help on using the changeset viewer.