From 8025302fd0fd3def45f43e1036f74c6a8743d6cf Mon Sep 17 00:00:00 2001 From: msridhar1 Date: Mon, 27 Jul 2009 22:48:04 +0000 Subject: [PATCH] update to JUnit 4 git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3743 f5eafffb-2e1d-0410-98e4-8ec43c5233c4 --- com.ibm.wala.cast.java.jdt.test/.classpath | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 521 +++++++++--------- .../META-INF/MANIFEST.MF | 5 +- .../launchers/JDTJava15IRTests.launch | 2 +- .../launchers/JDTJavaIRTests.launch | 2 +- .../wala/cast/java/test/JDTJava15IRTests.java | 34 +- .../wala/cast/java/test/JDTJavaIRTests.java | 9 +- .../META-INF/MANIFEST.MF | 4 +- .../launchers/PolyglotJLexTest.launch | 2 +- .../launchers/PolyglotJavaIRTests.launch | 2 +- .../PolyglotSyncDuplicatorTest.launch | 2 +- .../wala/cast/java/test/PolyglotJLexTest.java | 4 + .../cast/java/test/PolyglotJavaIRTests.java | 4 + .../java/test/PolyglotSyncDuplicatorTest.java | 4 + .../com.ibm.wala.cast.java.test-JUnit.launch | 17 - .../com/ibm/wala/cast/java/test/IRTests.java | 32 +- .../com/ibm/wala/cast/java/test/JLexTest.java | 4 +- .../ibm/wala/cast/java/test/JavaIRTests.java | 74 +-- .../java/test/NameAwareTestClassRunner.java | 1 + .../cast/java/test/SyncDuplicatorTest.java | 4 +- .../testdata/test_project.zip | Bin 170031 -> 0 bytes .../com.ibm.wala.cast.test-JUnit.launch | 33 +- .../ibm/wala/cast/test/TestCAstPattern.java | 40 +- 23 files changed, 424 insertions(+), 378 deletions(-) delete mode 100644 com.ibm.wala.cast.java.test/.launchConfigurations/com.ibm.wala.cast.java.test-JUnit.launch create mode 100644 com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/NameAwareTestClassRunner.java delete mode 100644 com.ibm.wala.cast.java.test/testdata/test_project.zip diff --git a/com.ibm.wala.cast.java.jdt.test/.classpath b/com.ibm.wala.cast.java.jdt.test/.classpath index c6801e043..d154f35ab 100644 --- a/com.ibm.wala.cast.java.jdt.test/.classpath +++ b/com.ibm.wala.cast.java.jdt.test/.classpath @@ -1,6 +1,6 @@ - + diff --git a/com.ibm.wala.cast.java.jdt.test/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.cast.java.jdt.test/.settings/org.eclipse.jdt.core.prefs index f9a0f529d..e3c6f72ae 100644 --- a/com.ibm.wala.cast.java.jdt.test/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.cast.java.jdt.test/.settings/org.eclipse.jdt.core.prefs @@ -1,258 +1,263 @@ -#Mon Apr 13 10:03:21 EDT 2009 -eclipse.preferences.version=1 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=false -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=1 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert -org.eclipse.jdt.core.formatter.comment.line_length=132 -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=false -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=132 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=2 -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +#Mon Jul 27 15:51:58 MDT 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=1 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=132 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=132 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=2 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true diff --git a/com.ibm.wala.cast.java.jdt.test/META-INF/MANIFEST.MF b/com.ibm.wala.cast.java.jdt.test/META-INF/MANIFEST.MF index ba1176235..a7c7841c1 100644 --- a/com.ibm.wala.cast.java.jdt.test/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.java.jdt.test/META-INF/MANIFEST.MF @@ -12,10 +12,11 @@ Require-Bundle: com.ibm.wala.cast;bundle-version="1.0.0", com.ibm.wala.core;bundle-version="1.1.3", com.ibm.wala.core.tests;bundle-version="1.1.3", com.ibm.wala.cast.java.jdt;bundle-version="1.0.0", - org.junit;bundle-version="3.8.2", org.eclipse.core.runtime, com.ibm.wala.ide;bundle-version="1.1.3", org.eclipse.core.resources;bundle-version="3.4.1", com.ibm.wala.ide.tests;bundle-version="1.1.3", - org.eclipse.jdt.core;bundle-version="3.4.2" + org.eclipse.jdt.core;bundle-version="3.4.2", + org.junit4;bundle-version="4.3.1" Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 diff --git a/com.ibm.wala.cast.java.jdt.test/launchers/JDTJava15IRTests.launch b/com.ibm.wala.cast.java.jdt.test/launchers/JDTJava15IRTests.launch index ac5dbfc22..2314e8e51 100644 --- a/com.ibm.wala.cast.java.jdt.test/launchers/JDTJava15IRTests.launch +++ b/com.ibm.wala.cast.java.jdt.test/launchers/JDTJava15IRTests.launch @@ -23,7 +23,7 @@ - + diff --git a/com.ibm.wala.cast.java.jdt.test/launchers/JDTJavaIRTests.launch b/com.ibm.wala.cast.java.jdt.test/launchers/JDTJavaIRTests.launch index 4447e1713..79a80c11e 100644 --- a/com.ibm.wala.cast.java.jdt.test/launchers/JDTJavaIRTests.launch +++ b/com.ibm.wala.cast.java.jdt.test/launchers/JDTJavaIRTests.launch @@ -23,7 +23,7 @@ - + diff --git a/com.ibm.wala.cast.java.jdt.test/source/com/ibm/wala/cast/java/test/JDTJava15IRTests.java b/com.ibm.wala.cast.java.jdt.test/source/com/ibm/wala/cast/java/test/JDTJava15IRTests.java index 90131b9c5..b773d774c 100644 --- a/com.ibm.wala.cast.java.jdt.test/source/com/ibm/wala/cast/java/test/JDTJava15IRTests.java +++ b/com.ibm.wala.cast.java.jdt.test/source/com/ibm/wala/cast/java/test/JDTJava15IRTests.java @@ -13,6 +13,9 @@ import java.util.List; import junit.framework.Assert; import org.eclipse.core.runtime.NullProgressMonitor; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; import com.ibm.wala.cast.java.client.JavaSourceAnalysisEngine; import com.ibm.wala.cast.java.ipa.callgraph.JavaSourceAnalysisScope; @@ -34,16 +37,17 @@ public class JDTJava15IRTests extends IRTests { } protected void populateScope(JavaSourceAnalysisEngine engine, Collection sources, List libs) throws IOException { - IDEIRTestUtil.populateScope(projectName, engine, sources, libs); + IDEIRTestUtil.populateScope(projectName, engine, sources, libs); } - - @Override - public void setUp() { + + @BeforeClass + public static void beforeClass() { EclipseTestUtil.importZippedProject(TestPlugin.getDefault(), "test_project.zip", new NullProgressMonitor()); System.err.println("finish importing project"); } - public void tearDown() { + @AfterClass + public static void afterClass() { EclipseTestUtil.destroyProject("com.ibm.wala.cast.java.test.data"); } @@ -70,82 +74,102 @@ public class JDTJava15IRTests extends IRTests { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), assertions, true); } + @Test public void testAnonGeneNullarySimple() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testAnonymousGenerics() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testBasicsGenerics() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testCocovariant() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testCustomGenericsAndFields() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testEnumSwitch() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testExplicitBoxingTest() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testGenericArrays() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testGenericMemberClasses() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testGenericSuperSink() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testMethodGenerics() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testMoreOverriddenGenerics() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testNotSoSimpleEnums() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testOverridesOnePointFour() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testSimpleEnums() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testSimpleEnums2() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testVarargs() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testVarargsCovariant() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testVarargsOverriding() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } + @Test public void testWildcards() { runTest(singlePkgTestSrc("javaonepointfive"), rtJar, simplePkgTestEntryPoint("javaonepointfive"), emptyList, true); } diff --git a/com.ibm.wala.cast.java.jdt.test/source/com/ibm/wala/cast/java/test/JDTJavaIRTests.java b/com.ibm.wala.cast.java.jdt.test/source/com/ibm/wala/cast/java/test/JDTJavaIRTests.java index eb4a030c9..ccd22d263 100644 --- a/com.ibm.wala.cast.java.jdt.test/source/com/ibm/wala/cast/java/test/JDTJavaIRTests.java +++ b/com.ibm.wala.cast.java.jdt.test/source/com/ibm/wala/cast/java/test/JDTJavaIRTests.java @@ -44,6 +44,8 @@ import java.util.List; import junit.framework.Assert; import org.eclipse.core.runtime.NullProgressMonitor; +import org.junit.AfterClass; +import org.junit.BeforeClass; import com.ibm.wala.cast.java.client.JavaSourceAnalysisEngine; import com.ibm.wala.cast.java.ipa.callgraph.JavaSourceAnalysisScope; @@ -68,13 +70,14 @@ public class JDTJavaIRTests extends JavaIRTests { IDEIRTestUtil.populateScope(projectName, engine, sources, libs); } - @Override - public void setUp() { + @BeforeClass + public static void beforeClass() { EclipseTestUtil.importZippedProject(TestPlugin.getDefault(), "test_project.zip", new NullProgressMonitor()); System.err.println("finish importing project"); } - public void tearDown() { + @AfterClass + public static void afterClass() { EclipseTestUtil.destroyProject("com.ibm.wala.cast.java.test.data"); } diff --git a/com.ibm.wala.cast.java.polyglot.test/META-INF/MANIFEST.MF b/com.ibm.wala.cast.java.polyglot.test/META-INF/MANIFEST.MF index 8fc333b35..ecf54ac6b 100644 --- a/com.ibm.wala.cast.java.polyglot.test/META-INF/MANIFEST.MF +++ b/com.ibm.wala.cast.java.polyglot.test/META-INF/MANIFEST.MF @@ -10,9 +10,9 @@ Require-Bundle: com.ibm.wala.cast;bundle-version="1.0.0", com.ibm.wala.cast.java.test;bundle-version="1.0.0", com.ibm.wala.core;bundle-version="1.1.3", com.ibm.wala.core.tests;bundle-version="1.1.3", - org.junit;bundle-version="3.8.2", org.eclipse.core.runtime, com.ibm.wala.cast.test;bundle-version="1.0.0", - com.ibm.wala.cast.java.polyglot;bundle-version="1.0.0" + com.ibm.wala.cast.java.polyglot;bundle-version="1.0.0", + org.junit4;bundle-version="4.3.1" Bundle-RequiredExecutionEnvironment: J2SE-1.5 Bundle-ActivationPolicy: lazy diff --git a/com.ibm.wala.cast.java.polyglot.test/launchers/PolyglotJLexTest.launch b/com.ibm.wala.cast.java.polyglot.test/launchers/PolyglotJLexTest.launch index 2eea710b4..9d38fe098 100644 --- a/com.ibm.wala.cast.java.polyglot.test/launchers/PolyglotJLexTest.launch +++ b/com.ibm.wala.cast.java.polyglot.test/launchers/PolyglotJLexTest.launch @@ -11,7 +11,7 @@ - + diff --git a/com.ibm.wala.cast.java.polyglot.test/launchers/PolyglotJavaIRTests.launch b/com.ibm.wala.cast.java.polyglot.test/launchers/PolyglotJavaIRTests.launch index 64139a005..b38b725e9 100644 --- a/com.ibm.wala.cast.java.polyglot.test/launchers/PolyglotJavaIRTests.launch +++ b/com.ibm.wala.cast.java.polyglot.test/launchers/PolyglotJavaIRTests.launch @@ -10,7 +10,7 @@ - + diff --git a/com.ibm.wala.cast.java.polyglot.test/launchers/PolyglotSyncDuplicatorTest.launch b/com.ibm.wala.cast.java.polyglot.test/launchers/PolyglotSyncDuplicatorTest.launch index e744bfe25..b3ba81a41 100644 --- a/com.ibm.wala.cast.java.polyglot.test/launchers/PolyglotSyncDuplicatorTest.launch +++ b/com.ibm.wala.cast.java.polyglot.test/launchers/PolyglotSyncDuplicatorTest.launch @@ -10,7 +10,7 @@ - + diff --git a/com.ibm.wala.cast.java.polyglot.test/source/com/ibm/wala/cast/java/test/PolyglotJLexTest.java b/com.ibm.wala.cast.java.polyglot.test/source/com/ibm/wala/cast/java/test/PolyglotJLexTest.java index 57127a870..68eb9c914 100644 --- a/com.ibm.wala.cast.java.polyglot.test/source/com/ibm/wala/cast/java/test/PolyglotJLexTest.java +++ b/com.ibm.wala.cast.java.polyglot.test/source/com/ibm/wala/cast/java/test/PolyglotJLexTest.java @@ -20,6 +20,10 @@ public class PolyglotJLexTest extends JLexTest { public PolyglotJLexTest(String name) { super(name); } + + public PolyglotJLexTest() { + super("PolyglotJLexTest"); + } @Override protected JavaSourceAnalysisEngine getAnalysisEngine(final String[] mainClassDescriptors) { diff --git a/com.ibm.wala.cast.java.polyglot.test/source/com/ibm/wala/cast/java/test/PolyglotJavaIRTests.java b/com.ibm.wala.cast.java.polyglot.test/source/com/ibm/wala/cast/java/test/PolyglotJavaIRTests.java index 8cd31c49f..5d9b2f3e0 100644 --- a/com.ibm.wala.cast.java.polyglot.test/source/com/ibm/wala/cast/java/test/PolyglotJavaIRTests.java +++ b/com.ibm.wala.cast.java.polyglot.test/source/com/ibm/wala/cast/java/test/PolyglotJavaIRTests.java @@ -20,6 +20,10 @@ public class PolyglotJavaIRTests extends JavaIRTests { public PolyglotJavaIRTests(String name) { super(name); } + + public PolyglotJavaIRTests() { + super("PolyglotJavaIRTests"); + } @Override protected JavaSourceAnalysisEngine getAnalysisEngine(final String[] mainClassDescriptors) { diff --git a/com.ibm.wala.cast.java.polyglot.test/source/com/ibm/wala/cast/java/test/PolyglotSyncDuplicatorTest.java b/com.ibm.wala.cast.java.polyglot.test/source/com/ibm/wala/cast/java/test/PolyglotSyncDuplicatorTest.java index 5c31d2abb..a3cd231c0 100644 --- a/com.ibm.wala.cast.java.polyglot.test/source/com/ibm/wala/cast/java/test/PolyglotSyncDuplicatorTest.java +++ b/com.ibm.wala.cast.java.polyglot.test/source/com/ibm/wala/cast/java/test/PolyglotSyncDuplicatorTest.java @@ -27,6 +27,10 @@ public class PolyglotSyncDuplicatorTest extends SyncDuplicatorTest { super(name); } + public PolyglotSyncDuplicatorTest() { + super("PolyglotSyncDuplicatorTest"); + } + protected JavaSourceAnalysisEngine getAnalysisEngine(final String[] mainClassDescriptors) { JavaSourceAnalysisEngine engine = new PolyglotJavaSourceAnalysisEngine() { protected Iterable makeDefaultEntrypoints(AnalysisScope scope, IClassHierarchy cha) { diff --git a/com.ibm.wala.cast.java.test/.launchConfigurations/com.ibm.wala.cast.java.test-JUnit.launch b/com.ibm.wala.cast.java.test/.launchConfigurations/com.ibm.wala.cast.java.test-JUnit.launch deleted file mode 100644 index 847f3ab65..000000000 --- a/com.ibm.wala.cast.java.test/.launchConfigurations/com.ibm.wala.cast.java.test-JUnit.launch +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/IRTests.java b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/IRTests.java index f49ce3556..f0e703647 100644 --- a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/IRTests.java +++ b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/IRTests.java @@ -25,6 +25,9 @@ import java.util.Properties; import java.util.Set; import java.util.jar.JarFile; +import org.junit.Before; +import org.junit.runner.RunWith; + import junit.framework.Assert; import com.ibm.wala.cast.java.client.JavaSourceAnalysisEngine; @@ -52,12 +55,24 @@ import com.ibm.wala.util.collections.Pair; import com.ibm.wala.util.debug.Assertions; import com.ibm.wala.util.strings.Atom; +@RunWith(NameAwareTestClassRunner.class) public abstract class IRTests extends WalaTestCase { + protected String name; + public IRTests(String name, String projectName) { - super(name); + this.name = name; this.projectName = projectName; } + protected String getName() { + return name; + } + + @Before + public void before() { + this.name = NameAwareTestClassRunner.getTestName(); + } + protected final String projectName; protected static String javaHomePath; @@ -246,7 +261,7 @@ public abstract class IRTests extends WalaTestCase { return false; } } - + protected Collection singleTestSrc() { return Collections.singletonList(getTestSrcPath() + File.separator + singleJavaInputForTest()); } @@ -330,9 +345,8 @@ public abstract class IRTests extends WalaTestCase { /** * - * @param srcMethodDescriptor - * a full method descriptor of the form ldr#type#methName#methSig - * example: Source#Simple1#main#([Ljava/lang/String;)V + * @param srcMethodDescriptor a full method descriptor of the form ldr#type#methName#methSig example: + * Source#Simple1#main#([Ljava/lang/String;)V * @param cha * @return */ @@ -369,11 +383,7 @@ public abstract class IRTests extends WalaTestCase { return null; } - protected void populateScope(JavaSourceAnalysisEngine engine, - Collection sources, - List libs) - throws IOException - { + protected void populateScope(JavaSourceAnalysisEngine engine, Collection sources, List libs) throws IOException { boolean foundLib = false; for (String lib : libs) { File libFile = new File(lib); @@ -403,7 +413,7 @@ public abstract class IRTests extends WalaTestCase { protected String getTestSrcPath() { return testSrcPath; } - + protected String singleJavaInputForTest() { return getName().substring(4) + ".java"; } diff --git a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/JLexTest.java b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/JLexTest.java index 2a4346bdc..5eb50ff98 100644 --- a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/JLexTest.java +++ b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/JLexTest.java @@ -10,6 +10,8 @@ *****************************************************************************/ package com.ibm.wala.cast.java.test; +import org.junit.Test; + public abstract class JLexTest extends IRTests { public JLexTest(String name) { @@ -20,7 +22,7 @@ public abstract class JLexTest extends IRTests { return "JLex"; } - public void testJLex() { + @Test public void testJLex() { runTest(singleTestSrc(), rtJar, new String[] { "LJLex/Main" }, emptyList, false); } diff --git a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/JavaIRTests.java b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/JavaIRTests.java index 8c7c7c0c5..9fe67a35f 100644 --- a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/JavaIRTests.java +++ b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/JavaIRTests.java @@ -22,6 +22,8 @@ import java.util.Set; import junit.framework.Assert; +import org.junit.Test; + import com.ibm.wala.cast.java.ipa.callgraph.JavaSourceAnalysisScope; import com.ibm.wala.cast.java.ipa.slicer.AstJavaSlicer; import com.ibm.wala.cast.java.loader.JavaSourceLoaderImpl; @@ -62,7 +64,7 @@ public abstract class JavaIRTests extends IRTests { this(name, null); } - public void testSimple1() { + @Test public void testSimple1() { List assertions = Arrays.asList( new SourceMapAssertion("Source#Simple1#doStuff#(I)V", "prod", 24), @@ -77,7 +79,7 @@ public abstract class JavaIRTests extends IRTests { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), assertions, true); } - public void testTwoClasses() { + @Test public void testTwoClasses() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), Arrays.asList( new IRAssertion() { @@ -103,7 +105,7 @@ public abstract class JavaIRTests extends IRTests { }), true); } - public void testInterfaceTest1() { + @Test public void testInterfaceTest1() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), Arrays.asList( /** @@ -146,7 +148,7 @@ public abstract class JavaIRTests extends IRTests { }), true); } - public void testInheritance1() { + @Test public void testInheritance1() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), Arrays.asList( /** * 'Derived' extends 'Base' @@ -174,7 +176,7 @@ public abstract class JavaIRTests extends IRTests { }), true); } - public void testArray1() { + @Test public void testArray1() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), Arrays.asList( /** * 'foo' has four array instructions: - 2 SSAArrayLengthInstruction - 1 @@ -203,7 +205,7 @@ public abstract class JavaIRTests extends IRTests { }), true); } - public void testArrayLiteral1() { + @Test public void testArrayLiteral1() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), Arrays.asList( /** * 'foo' has four array instructions: - 2 SSAArrayLengthInstruction - 1 @@ -224,7 +226,7 @@ public abstract class JavaIRTests extends IRTests { }), true); } - public void testArrayLiteral2() { + @Test public void testArrayLiteral2() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), Arrays.asList( /** * int[] y= { 1, 2, 3, 4 } is represented in the IR as four array store @@ -280,13 +282,13 @@ public abstract class JavaIRTests extends IRTests { }), true); } - public void testInheritedField() { + @Test public void testInheritedField() { List edgeAssertionses = Arrays.asList(EdgeAssertions.make("Source#InheritedField#main#([Ljava/lang/String;)V", "Source#B#foo#()V"), EdgeAssertions.make("Source#InheritedField#main#([Ljava/lang/String;)V", "Source#B#bar#()V")); runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), edgeAssertionses, true); } - public void testQualifiedStatic() { + @Test public void testQualifiedStatic() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), Arrays.asList( /** * @@ -310,7 +312,7 @@ public abstract class JavaIRTests extends IRTests { }), true); } - public void testStaticNesting() { + @Test public void testStaticNesting() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), Arrays.asList( new IRAssertion() { @@ -336,11 +338,11 @@ public abstract class JavaIRTests extends IRTests { }), true); } - public void testCastFromNull() { + @Test public void testCastFromNull() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), new ArrayList(), true); } - public void testInnerClass() { + @Test public void testInnerClass() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), Arrays.asList( new IRAssertion() { @@ -360,11 +362,11 @@ public abstract class JavaIRTests extends IRTests { }), true); } - public void testNullArrayInit() { + @Test public void testNullArrayInit() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), new ArrayList(), true); } - public void testInnerClassA() { + @Test public void testInnerClassA() { Pair x = runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), new ArrayList(), true); // can't do an IRAssertion() -- we need the pointer analysis @@ -422,7 +424,7 @@ public abstract class JavaIRTests extends IRTests { } - public void testInnerClassSuper() { + @Test public void testInnerClassSuper() { Pair x = runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), new ArrayList(), true); // can't do an IRAssertion() -- we need the pointer analysis @@ -452,7 +454,7 @@ public abstract class JavaIRTests extends IRTests { } - public void testLocalClass() { + @Test public void testLocalClass() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), Arrays.asList( new IRAssertion() { @@ -492,7 +494,7 @@ public abstract class JavaIRTests extends IRTests { }), true); } - public void testAnonymousClass() { + @Test public void testAnonymousClass() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), Arrays.asList( new IRAssertion() { @@ -511,59 +513,59 @@ public abstract class JavaIRTests extends IRTests { }), true); } - public void testWhileTest1() { + @Test public void testWhileTest1() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } - public void testSwitch1() { + @Test public void testSwitch1() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } - public void testException1() { + @Test public void testException1() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } - public void testException2() { + @Test public void testException2() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } - public void testFinally1() { + @Test public void testFinally1() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } - public void testScoping1() { + @Test public void testScoping1() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } - public void testScoping2() { + @Test public void testScoping2() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } - public void testNonPrimaryTopLevel() { + @Test public void testNonPrimaryTopLevel() { runTest(singlePkgTestSrc("p"), rtJar, simplePkgTestEntryPoint("p"), emptyList, true); } - public void testMiniaturList() { + @Test public void testMiniaturList() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } - public void testMonitor() { + @Test public void testMonitor() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } - public void testStaticInitializers() { + @Test public void testStaticInitializers() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } - public void testThread1() { + @Test public void testThread1() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } - public void testCasts() { + @Test public void testCasts() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } - public void testBreaks() { + @Test public void testBreaks() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } @@ -577,7 +579,7 @@ public abstract class JavaIRTests extends IRTests { return MethodReference.findOrCreate(clsRef, nameAtom, descr); } - public void testMiniaturSliceBug() throws IllegalArgumentException, CancelException { + @Test public void testMiniaturSliceBug() throws IllegalArgumentException, CancelException { Pair x = runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); PointerAnalysis pa = (PointerAnalysis) x.snd; @@ -589,8 +591,8 @@ public abstract class JavaIRTests extends IRTests { Pair, SDG> y = AstJavaSlicer.computeAssertionSlice(cg, pa, roots, false); Collection slice = y.fst; SlicerTest.dumpSlice(slice); - assertEquals(0, SlicerTest.countAllocations(slice)); - assertEquals(1, SlicerTest.countPutfields(slice)); + Assert.assertEquals(0, SlicerTest.countAllocations(slice)); + Assert.assertEquals(1, SlicerTest.countPutfields(slice)); // test slice from main sliceRootRef = getSliceRootReference("MiniaturSliceBug", "main", "([Ljava/lang/String;)V"); @@ -598,8 +600,8 @@ public abstract class JavaIRTests extends IRTests { y = AstJavaSlicer.computeAssertionSlice(cg, pa, roots, false); slice = y.fst; SlicerTest.dumpSlice(slice); - assertEquals(2, SlicerTest.countAllocations(slice)); - assertEquals(2, SlicerTest.countPutfields(slice)); + Assert.assertEquals(2, SlicerTest.countAllocations(slice)); + Assert.assertEquals(2, SlicerTest.countPutfields(slice)); } } diff --git a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/NameAwareTestClassRunner.java b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/NameAwareTestClassRunner.java new file mode 100644 index 000000000..ca7a7d4ca --- /dev/null +++ b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/NameAwareTestClassRunner.java @@ -0,0 +1 @@ +/****************************************************************************** * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html *****************************************************************************/ package com.ibm.wala.cast.java.test; import org.junit.internal.runners.InitializationError; import org.junit.internal.runners.TestClassRunner; import org.junit.runner.Description; import org.junit.runner.notification.RunListener; import org.junit.runner.notification.RunNotifier; /** * This horrible kludge is used to get the old getName() Junit 3 functionality when running under JUnit 4. */ @SuppressWarnings("restriction") public class NameAwareTestClassRunner extends TestClassRunner { public NameAwareTestClassRunner(Class klass) throws InitializationError { super(klass); } private static String testName; protected static String getName() { return testName; } protected static void setName(final String name) { testName = name; } /** * get the name of the currently running test when using this runner. Similar to TestCase.getName() from JUnit 3. */ protected static String getTestName() { if (testName == null) return null; int last = testName.indexOf('('); if (last < 0) last = testName.length() + 1; return testName.substring(0, last); } private static class NameListener extends RunListener { public void testStarted(Description description) throws Exception { setName(description.isTest() ? description.getDisplayName() : null); } public void testFinished(Description description) throws Exception { if (getName() != null) if (getName().equals(description.getDisplayName())) setName(null); else throw new Exception("Test name mismatch"); } } public void run(final RunNotifier notifier) { notifier.addListener(new NameListener()); super.run(notifier); } } \ No newline at end of file diff --git a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/SyncDuplicatorTest.java b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/SyncDuplicatorTest.java index dc7447326..a29951d94 100644 --- a/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/SyncDuplicatorTest.java +++ b/com.ibm.wala.cast.java.test/src/com/ibm/wala/cast/java/test/SyncDuplicatorTest.java @@ -10,6 +10,8 @@ *****************************************************************************/ package com.ibm.wala.cast.java.test; +import org.junit.Test; + import com.ibm.wala.cast.java.ipa.callgraph.JavaSourceAnalysisScope; import com.ibm.wala.classLoader.CallSiteReference; import com.ibm.wala.classLoader.Language; @@ -30,7 +32,7 @@ public abstract class SyncDuplicatorTest extends IRTests { .findOrCreate(JavaSourceAnalysisScope.SOURCE, TypeName.string2TypeName("LMonitor2")), Atom.findOrCreateUnicodeAtom("test"), Descriptor.findOrCreateUTF8(Language.JAVA, "(Ljava/lang/Object;)Z")), IInvokeInstruction.Dispatch.STATIC); - public void testMonitor2() { + @Test public void testMonitor2() { runTest(singleTestSrc(), rtJar, simpleTestEntryPoint(), emptyList, true); } diff --git a/com.ibm.wala.cast.java.test/testdata/test_project.zip b/com.ibm.wala.cast.java.test/testdata/test_project.zip deleted file mode 100644 index 619f6c95b5f971aaa5a6113c1e5f1c5f2a5eefa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170031 zcmcG$WpG|ekR@s{Gcz+YGc$w5%*@Qp%nTM<%*-r{87;|Tuq;`!ct5+lC-&`&_IPGz z?YI%&KixWc>g1`+tg9#k0*d+$67Zj1FPiJ!|Mrgt@Y~qlmfq6Hmfqda#*p6F(AkCF z%FxY_-o+H~%f!&dkb&OV#?aZ>!O+DbHKAV`gb6Wh=8h_DlgApYf6z`Q5sh|L+WouM zyveHgK54G(P)|3#CMv@4_8~#f!;eg>yX(Vf_k#oAB`e_cN=`MB| zNLj^|8~nkb$SCEF4FBFJjilF=wNCBfY%X6>1_DwcVx)2&07MSZyLXEJ3Ki8KLFM3N zZ)Ixi(w#K(6Q~gYP!rp^OWENrFx1EYyA$?w9`b?l+D-@yoHje9vY@ ziK%j4@vP#;9^Ng_?t-$-&@`uI4VJt0?wlipB*#$=fd`$PpE!nZ$B$nFP|5`U9gYHj zf}=Emf$WURrshtj&d!$hc48jJHm*N^IMcg$xJ*jZ%EZhm&@x2Mtt{+)nE-a8F}jVO zWVx9qA|5XFl>BCZpJe0YN1uRz95NY%2?#0#WUs4R3nSo9s{@{Y4>HrAyquA%rHu(a zAkq$|PA-ZlB4 zDrNZF*SvGr`-~wdaZ0jEjL$H0DiG)Z@LC|1YeS;RJCMz_q35M(Q zXx7AxL5j1!_FGIOlQ~?a8u@gh`Bv#=0kQm?rJGe?PNr?Vu0^ikFY_d*JeqZ2SnZ19 z8PEAvaVP>1zu1%fiSaBMutt&J?n1UdK|xMTRftYXUYtQrNM1@@OhuJmPCPVT$ZmiU zQS6>8lwns%=yar$xS>Fq8Wj1dKeMRf-0>_1eo5!s`K0oZr_U#ltg8Za$%IGWUAOHjH-=akOCnyA}i8D&_G0sV$o08CbKjvpz}j-PHM+R1iKQE z&I@*CpK`d&4|VJXdf(|WUe6KDu7`_Y;w`-w6GwZp$j0ZYg1UU4875Xw&Mn^YP9F#}gpb$ZBdu}x)+ zu`P!}_Fi9V4Ocu{wvXZdE>=-$wNVI6tympGsQ`3TiS|gYKS>+pF=5JSvq?bD;#Y+L zpse$k{4Q+ARp8@}W?; zopM^93I=`)Ya*=?T||RHRIVsTrRpo9#8FQ+Ns<2&L$*;dBv3C@L|DHI@`G{+D>;m{ zE+g}a^JsJQ`T6?`L;%RSHzgD+f}9cmrzB4|)Ja-v0uM?SFY*~vhBUKvZw_vi{moz+ z#2Ul+WYGdA`u%ofMBhN_i#tg(7wzC)WZ&ef3h8{9Hio9T2bsW&PyXMw3I!i1Gt1#1 zZNOIpt_J(n1F(gG$`lbzbqM zaeu`Omm-sWfrDB=jvU_&3|pfRD6e3!##|YvvkZYIntNQuDVh(=*H~4H5w* zxB?j2E2BFot4ODq7rX)-P@}6>xTxloS(AUD_$}P@ShwIAiwK#{(H147`b3!^+{P_! zChBJ2G_gAj4@^70es-0p{_JBDs$;Z4op259cx(EBx#)(@R+1;SzN2{qy|O-11%oIq zFRfzy*9?0s+w(#h8Xd?Y%2n}$$6lbHM2W3GKkfsN)mhgX$2oXQqkuOgwKNSXA8DDay!!#I`emmH;Y)l>gHut?NM z2)}m%&`d`q1*ml{t=^rDjh!TKKOQc40?_l?#-OSNR_c2&NA?dWlcbbw@kSlJe=s>2 z!l2F^wA+X)BV^fkm{+EEIDks8NNW-i(tE4}%X?vyFM%wB-_(@>M;|d)x|tS%ss{-y z+U8aUVq^6Qmf~T>Le*Kh4!U8UGWwF&sdUP(yh4a{lNb;T`!<8Ne60ta@o4qg47lna z=!gflGe5^mZr>jqE)pbyZ1&>AcUwB{J{LdNhu+JJ;dVmJx~H|s{sKDD?=QL!-Hw1d z(7V15mi~R!d~#IofKT;$Y*-}lORw2|eK0Q?Id8^UcPvbtd=<14A^O?CjW{Q3;}W2R2$R}A4RNgN4Z8-d7w-) za+%LtD5CS;`tpAW4VgOZj?01)b6vt>PC2_WnDsH98DOK~fLp=Ss$!k`Q4YJ}??fJ? z?T7^xey$>l2j_)~c81CdEi7W^g2c+Qy%tEoWr;7uji{(|L;?*7X=_Pg!RT~_P3FSc^#iyhJ2rjw64!O@Y)kb*QDQu85IriDJK3W1lLz_BC z{Ne-%t7&$&kN;VqPI{=Z6VbFP1Lar=E@FI00sB*CnJ2Fr$HL|Iy_f zLQoGuZ6I^3K%goMG@zoIc%t`Y`pD!NVc#Hr!a*s1bzcHl>^k82cWeFg-1(m#HGg@M z|4*X*TQ*g!6;Omw`4-aXb=58CQ2QaqL?%SkzlNeK^(C-Y#DgxBTrZ%HG?);Wbh3R8 z-g)793>24o26`no=55rrg?3H))Xn35xamC8{qpeigz(PVqk@QtvFqYtyW*@ht21uN z#!3>(B>rQ3+KHy#ppS|`8bqO>*TUVogACz&ooeV3w-=ELlE|1qpb{`~>J|$9*3Ays z?f0${&^jM~K%}WO18e)b!>fEw+%gH0wqHgjsWJ5i4&8f_=6LeMT-7UX(p*YF8FK|O zWk`X;Ivyjg#f(8N&{V&N7QF(?*Ir->vp!u9kydO69R$VF8I^$UM=E65UP`n%QXPh+?n`u^cZHKN*wtqs5~en3IW9Ta5C=wUMG1ZI zM2M}a%w|b(I(Civ8Wq?HJ^CZM(U@%wI51}Y66>7uDZ$Ou2j`n3$OF++6YY<4gc~!;OJ-?Qkf~LjV zjR|6|O6JQz}i+f0wvND>zJ0G|p>&aH~1b_ z|9Yd1l09A{Xv^LS>@M(t`=CgPS|5^AfSbkXC4hHdbQ^pbODx1D`{=c}R8jxE>qNdM zLnRR7)1uodmNg2@Y4+%6;qMknSsrx@=Z}b}Hs$C_johcCQf(y*K$cc-Ye-{Iqb^?L z4si&Y*gc}I+;}WF(9gvtS$D)Kd;Ael&t5@@3HVyr_Ua&|8qNu(AnKnKF^X;Ck7?>$C2f-Pwh!z7q5C_Jp~d8 zV`S*7R7_flu8(#FK}SOxY=tatsOV5qA+)FTh^Z?^Jqxj0NF9e)0vUpFKQ+T~pL6!~ z=Klt?3b6ZG2G^ahJvyBvXn|OQ!I|aCw zkZ>0^x5NRg+%P<&%tQdJ1@r+2hr$_@Tj)u!P2_24cUWRcWf$<>52dvHh@y$c&EKd##(^v+T zE_qLxMIzh@^EH8IMN4*9anfm89d!}hJG*gl3a}(38`{9ddmB+j-JTKxmS!Az)ttEd>A0~9- zS)P7OeuoB9kCzAG_%GcPmyPCY@@R_Yx+o`%ocrMpE}kofq~e{;!j~j8-nhBv2@ZYr zbwrHlST~%amK$9G!zktcfdgn0J?(e+Tg@0*>WEryi0kr*+;+1YP#O*3C|o1AA`Gk4 zY?ihm4nwdG&0*9VNY3&OQre00Ei2RRx8+!QpfdhkZuv zRlLGGCT@J(fzQo3WXvQScjg!hUg0>P8xThqq`)46Jj`aFSXWN+Hgt1SNOTrnfw1`Z5B+vK;1 z3;o|9F8)uZQK*+66omCn{~!lN6{;#Yih~I)tcsNpg(+ylO;n=3ReM5(i;LkRNB#I- zRub0d9YLsrG#E^aiNMCp%(tVJCx`&h?sxcu{i!)HmN(Ler-x)JGo|!4S)gCBybzqI z!oxlc?jVVr32W=>F|&e?s(`aHVfjS+=b~<~tP=p!KSJ3b8QY z5k^58d=-4w#Y~T5muNQ8u&A=DD$8_2;bMs*LKh>SR^`@R$^M|feFi3?|NJ%(L4=Eu zI;mP|?M1Pqj@>Bz>9lya06`Il#J)(3so)eBpNNn%a>E`{AIj@k5ta%hT=d*HT=7;! z1f$bBv73$M75pd5XFxoLe^v+${vTrgkLLexB(GRP6`LKz=T$|D22(&oh~fi7((>B* zAfuzp(I7YEmqyVa{Ik@WtaZBwJJprxc@y^V?Dh7}Axi#Te4R6ud1TXjDi+t5q{=ek zBezwAT@>#7Z}0D56})>%g!gr{b#)M}wg#d4dne2*BiRP}SLsB#R@hOLImu!fX+9ep z-UcJLPGlmoRZEnU5ZkyX_reqpTpt!B*-)%kW`A?6+|-nhB_5K>lV(Yj*Z5v}g5mBZ zzbg0YZzu>U;d!FWwusivwg>?IIA2wQsE?q4*{HU-pK13L7N3NWGb$SZI+mA(BPHnPQPJc-^U;MQEz)$}aDqN`EC!o5C z$p)??86y)5lU+yLk&w`adrC=`N^U#1G9OAbHw5vuFvc9*i2TO+itnDs{a04aDg07I zNU2w~7)oLxyBK{sV)eM#jVI@l0V5sXuUQHV1^Q*u0{e>wa2cLUSXa=2kT<2#a5zkU zft$HzXu)A|NJGJP{D()gJKp&d!B`_Y%`1w+sBr37*)Cb`2hItLr6XL7CTL5v4_aTU z)htYJ@Y^>=%80*SCcVc#)idch3tl0OP)j>GU!02frH+2a-Z^r_6`9rJ`|2+`(~hzQ-Zxr-jX)udQaA^QhEflBe3IA9|e+e4(k{niTr$`B{W6>ZlCngg}A0P_cGjyzKK6cRQH8XnqT5afd zktFc$)e8O~U>Cgr>RgU$!v@$zWL5B{)wt= z;|hvmoH-a$k#RgP;^U|>jjJXLas>YI^~))W3R8ubS%puSmCalWr@C>l6YNo%relkz zx?wM#eZ56dLvEig{s{5k84|Ix_!Um2$J1Vv%ES0|Kpcq z+Vh@3)(1pS<+sO%KQ0se6~Vuwrwr&b0Zb{*hG&~ywgg^*prtg>(UM?d2h?d$k#uU2 zdJ(1a@B|b`h0LC0i#F-@EXd~lpU;1>kj8}&X`@_8AaR~=mv0Ge)fR^XTybe{ zV+gKnV24Uac#3J21vKu_K*4w7Rx$I#TXEuhZtGMOUl06X;YAy;m^HXsc~tj&+vxW$ zt`-na@@~cBV28o9zV+%#|9fIZrn&$zr!~ENl(X<+m0BA2T!$xTlw0xDu*S>wn%mcN zX+wmRRUx4tl(#=jJwITwS%7_1$0G3+q5#S@XO?bYQZNQC$c?|`64T)|ODXZyc>%7v zgIareTuQ67u{;`ElCy1m1R8gy?OF(_$UJ?@-(jfKPppZIrLC5$(xYxRlURgsK035t1hRm#B5Jq?7B88W2Q$9T9aNv4F3l0Yh38MwAibbkaeyL49Id z+gCS2XUEx@l&<><3xcc7Jnr0n!H+ zS4D|*Uawi2ObTE29#Pd0d0pn3G)GVr=4eEJ!c)3jr&6+11Js!D7V?nOF998P(Kbbi zs7VKH+!FnfxgE`q5K5OLFS-vUa{j)^@KV1qRWyPxGSqbJNYdlNGsr7K> zL^?m%#I9SzYva;*CeQ9#*hA*rbFR#ZRw3@7eTa3R#kO@i@v@!^9iKCxL19bN*0JnN zjs?Xt3qS(lJ8w*UO$WKXd4YFMFSh?lQ_BfyPD+4SZvHmi{T$i(qprcvU^xFpRafP| zngt^6JQoeKX&tuLV%I>S)TtVUU8w!kC41r2kxD477s_cV%Qn$(f^xFYmpflk#8LbM z1SUMp0#T9IOPoJ#w%>0$o8Mja>ifTw-Om)w59l#$<*|j5BlI%xZ*qp~d_U7&j?1|e zC+IM2+mXu_C}?J+A-G|&gbM-`B6kc4Eh=rdu*St*&ABbpIqv`(CjGH;YqgnA<3b@= z%Y4TcW-MvPCNofE!xoy9*NbAI-Lg)O3nBAvUaes0j^B=`A~KcfrL;?VyJ`%Cx8BRNQ${EMuTUe2_-G zENrmaVmp!DJ(!N<@3r+thcHLLVDqH?YJjMF@{Lh$(u|@#klbR}6eP>YEZUL}oQNH4exx+*+Y zc)0y_>TiGUZLI?6b;56(3xBNFqW|c%96~=pibR@KeTT;9kRbMCNsAnIH{K%osLA?v@kzd5olKm)Wh!xJY z$}-tJZJNi)H5@T81K=owI3I8{;ybBUl(7Vq{2f#RXO7eM5amX8?V)C=FD{&_Zhnn9 zX*NN5cL28j$#0dK|4+q1)YQz-)y72xFhA(x18RM`Wm4I!K?N3D zS4qqh&aoKjSS~KL{AO2fqUGPpnd07&zeHahvZfuRnG9^Y#L* z_C*E34$j7TkD~}|!w0M5lF8$W(}6JuJ5FDD3?B(KIxV)jVx8)z`X z)6QRpGmeD8Lj7Y_5D<7vRllHKM$j(4*;v-ole*j>r8IOD>&ndOr*~?2#+YTQqX;1L zN{ks^s7E!rN^GYcL(twEw?d6(x4upKI|TXfIyjvY0R_eR@>1MR2gpyU88X7J!j@?I z$PFLw0?JnAG`+@(c1gl{3sI@*t}tdqEb)gNMxvxKV~1=AV;YWJj)zp(C{PDji$=rZ zl}vKoe9tw@&J{6*o6(vEDe6&kGiQ_K1=yt(yzuXooR!E@INSr{zKCKIK$Ig!Il542 zSn~&}cYy@0#G{*$+Nb)8a?Ps5#fRdLUskXUFmYnKtxX8*HBRb=C!QZ1z-iZRn(R7G zQw&l^>AbK7I%X%HQz&1rF*sV1++p^|yDGk|6vRkdIefBcZ$IR@(|ax9Kz6j1lN@fT z+GiZMC4D|b_?f<~#1w0p|I_sS$EqdvcP!$C6aX$WbVshKf!K1bB`@fmq*50W~+VAxX+u9AJB1uB{2mdI5}+K z^HjId%>*VCs`u+aJUvxwJUOtqK!ztWa2gy6d+43y*_Zm>uXcM!6&Tx9Cz~kcaUdGg z6x6q_`H|wc#|-1x2p!0ts%$33qMJ3bz)?C6EW1WQXy7tG`vM=l2 zir2iS5YeWnBX+1Ellv6ki)M*wX0kzp1V_xeZ7GX^NmFx)!d$FsUDQ|IunATlifzcwz^Jl3b*=eh z&bXc$bfxQ*=*1c(+OZ#Tg8a}?m&!~`h6^oE1eU>7^L$~h_t?^Vhm2XHdH$FdKwrMY zU7k9fei0M&#}fBJ)e0`-@18y4NvG5+u}p4B2nxb!T5bqOY9{clkRsdD0$74RxgVY&FjVQ|kz?6^_kPB$u_KB2aK& z8NU=LITDYGjJOCni&Mp%*qa+7rJbTGl`f&0P~`$LkQzD?p=+S3 zYk!e&L?w*oHN?9eJc>9ZD9tSIxS40bXd9cr^TQIyyEr3ZAwfYtS9*JTk2K>lR8X*@ zn-OpE28-2D6FW12=>h({pJwYx0h)#Uq5|BX{HeO42nq>~CL}I9A}tnu=(H(&UiMvaRNB2$JID%ImvJhI5*P$_G2~$-%10_$tx8aFcR2DVBJ^k zNvSw3F&1M6RbJr_O3HIVZkdwdf)YlZn9v=d9XMOgXtn*lC>P&Wiwzm>phC9Y=@dR> zkBvQPe+>zHiC7TyS+*A@57NU`b=W1i$a*d~&m@EM^@vJ2>5!G&>2eDix7p0F6Bjl} zmnF61(R;2|sW(@HHBjs~3~aI0VTB!kOaZf`UT3Z<2`e+b5qT(5Ipp+8oc|g_OK6eT z$opQY0c-Hwojfy|p$*<#F>2CUZ`MIp9Ohw8wdA@eXde#4-03@%C1+rI8!6ZV4#%Wv zao4zFWT1LqI=Il8E^*-g0cF*3ZZXF zDM8GvbwP)wZ_N`d=Q!D4F%>?7EAq=@_0yl%a6$Bl%p!byq8_@1F6zLl51E4D|Ffr6x{6|A#u)~f@7XEu}f-~JA}_< zV?N^yxf?#Wfn;E6g(u#lrZrV8Q94eJDkAlubM)x-q+|Fk=q++SXaR`ZN~O9 zyR&!LdDOHAw|A;luI~6ydcp#pyUt64H^|ux#jgz07$j%gUb9teEw0!cL3d^4wGI2{gLmQj_n2A!7`#B`-o6T8oyvZ(?^}(mC zG^MGDt#FhOp3sRIjH(=YuStsIL_H3V3%*DoRKKqsS1VH5;YfmLy8|=?RXdC0#*FvI z?D=M;_3E9L#o8DYCm!B7Bd@UuREokEiIZ?<>_>aAvdVmD)ch04vKg>%(-$N_XQn>Y zItNPM6a|$GsAdznbK<nk+W0N`Vhr~EX#gTe35h2q6d{`w*n58$IbQtBQsv+-DE|+ z;mb^Mz;UKuglp5dC0M~EL@t8=f%^y?xLrs_5O$SmOr7M5+rH(z2A*wA z2V>`9&jaRJmni<>_}urxqtuOXN}EDR{Fa7d*eea8|0a_A)(wWn;+=m0akeM zbdA2b+t}^kjW|Pi6JF9>;yNT7rvaPBMIxOtnZ!?a2v2J*e#;NzzbZemC*kWGfIPGF zTQmP(<<37%RwZ491p`z+y}P-O=>4u!523q?5L0p=28LrWu+uYCnXrh6bh>F=yH=Y^ z&SIX4Yr6ViBw6RY{Zplt@?AGFsC-nB!kJ_{47>29G(_Ch1@qEH>snIxcPIIHe<XuEi#|i2$kM8$A-ULTa*%m?&m6fWg5vJ5(np-AKLHY6AhLEt zj<+EPBQtI?YJ%);bmF%eS#tKp5rGDr`t4(dGjl|DPw10}V4uTSEFGtD-jxI#vBI4; zmnxUzO8St#$aLRhX&^nCmPbfOKw`j?&Wy0@quV_5sble7$`_~z1e?#K)^qp>if$he zCY#ov!V}M$Q~4Lqe+as6p-=8=&d$Kn>E+B9tQ4RxW;Vkdd`fDP%9IPD(kW~b2U~1h z^wb%~tva+U%WO|;dKieX>-~;*w+*Jz>KBLHi&Lh#cz02&NzcnWdP*g2Kk9aIw937I zWgwGH0T!>9iC95_+AwzA3~9%rWl}B6j3%yLZe5~UwoS^U+s#@uu!gU4gt;M@tQt-F z462YEnNJ3p?GGsMLO{CZd$d6TSSJ44QurS?WB`-dVjh3nU|o4RnO_qtBc!oQLslnC z#a@g4H73Lqy9-t^uFT4f0eXm9bWmvQ8H0f1M0rhX1I&T$i@m$N5i9w zsi%yWXD?p}#yxyFi)MRMn;`_nr&tgN!cEKTFY%59Uug_UIk@zQeJV~O zs`L@u>pwMjA~V`CBD3S%BrL_j>>%#Y*MGmB>AfE%V1M=dxc*l+m@8(?-~o_6&3=pP zAD71g)ct4lM>p;lbHjEl7i_S#vzOx=CB7R(XviQ$ae?tsg2iXMRA?Ki&zBs}d{b4N z?G%vCiB%p7&5d{0%gdapU2%VhbO)*xB5xy$3&j~?K%~JuWy*w5yAV1-9mKO7T0{U=rh;jO?HdjEQnwzm=sYctu@1FN zkpDwU#i(?)5fvlpdH&@4fir6^jcg^{2gq5|``C&}+2M8Mr+RvmJOK%cI}6-^%(~j) ze1&~I2Q(-0D%{%7-K@s>#TyYDt9z?YOb(aM`K)ActCs) zejnHvC0QID6FF^RzAs@tNjc_~R)aL@c$>hqOGQr1%u(O@+m^FH@Afv3&aR|b7?F8s z;gWhGBc{shkX$~5apRFJABWkPex%^g3hdhQNq|s0ltf+}EwtD{f;r^|V2%VMJ`RJ= zVe}re((TyEzmJ6IX{QibVJJtaIoT9%fQ#2?);?d?9zB{dqpF;dwbRFB;Sr3$`y_p7 z*|0!R4-%~t1r07t%SbKcP?rJCYPHb0Bih2Ps5p+#(lNhquHo(SbTkoi1kW>i8v!Hn z?7c8H?R(OqT48>y6XjF2O4$in`A=!HdKF`WWf=-#Xf{f;uaK1Klq@z2 z_TZ+KXs0ot3m+m?Eom?Z$tnqOO4hNZWTcw?OT2_TNQ0G2YZVF9vt`ch8nUcu`AqRh zD+hlWhfI3Qk4k`0!T#1b{8zL_O7(9!=Tn@N4+h+T#jv1?D5dM!YP0FAJJH(zAeBrm zih+EG(Pe9ih%Eg=%|VWhf&rL6H04#?Gr~8&%w%D?Ke|7|=|jaJXAQjLox$i|3?Z7` z7{lO_GHuD?6~#eICtn912|`6qFO+qc7My~#OQxl|`oWnKD;)OzwZ!I_)5V~WrT{^r z5KNkzaSqAhg;eFf^GFgcFh+R-_L(=$k}|qvKyHq5Wn8^r|EjeEX?Bn8S~_*w1=_ji zCF3eeb2_=atZu}$83uE`2wyPB!hV1WQ}I+9J?`x(mI=K<*c zD9vp&%U@o3Y>RW&Mg1ED?aRHlO_|qf9N=>vL-TpaLY)s$# zY3{dQb@`8DF9JU&hthw$Vg7h>2%t(ze--}36y#(8A58FFc(Gb({@A?Dr-eYDN7oG* zI-pFIy4`5Gn9>&L+WIEL3yBZ7)kEo+6a_E4?bF4<^6LtlLu?}`o-k*tTPh(bth*6| z6G`RhbIm5z8e&m5<45AzpxIpMVw$Zf$o^rI!3ph7H9o{RX3+?!U||ibHU9L<9*k1M zt@1kMjM(z#N&o2U#ds+sgN(v>`gp6nTNrm}_bE6c-Hnzss~SB2F00Tv1TEW@Sc|4E zC-=P^42Wk0{wdp|@luzJ(|HH2^( z2QSEly~kNCV%CLn3`P3GQ76XSm}4-_23AK%6xZeYU>u%@V=lh*=WY%n)TyZ@I^i0O zben?Ls=3|hQ2ZGgl8qav=Eslibrzw4NB7#XaY5LH7Gm;YRYlNpV8e>TVR6i9??>Su zY0aNWL=-i zxfa81QB=~jBdy-V07ZLzqa}Gfm*J0P#kGF)>e_a3L`EI|$4-O74 z0xs_cPA(3PuF(4I;|7i{4jx!N)FAqjGt}h*IG0o}9w3W@$K5U_)eYs$tBQl0!O5A6 zgV*dn&ler2woc&|B-EMfNm(gr897-=S~*4*;!6tPfPg5{fj}|>Pn(z;fYf8I29lzH zK>RXv)&jA{&H$?U0G@w0bbmY~A*EsoxcqD?0yy6P&Bp(8UHCJ*Q=36Ksz*aPIY$4s zzM7cDoSf&c&qXxO zgqtEP+mA9OMm{H@fl>d-uiT>q>_%x_qd0FOW@$!@gCI+$-{zLPaq=;gIntowmBnkE z{}W3xY)7o#JE8GW-Y5PlnM3vJYUpQ>ESZ90BHBE!8 zUh1xE1$5QecU58DppMj7&LN?h`lD@pRx0^~9CGwbeP5PVhpB5Z9xZIY2CDGXDFjly zk`*Z|k;8ae-J=f+B+mfNWut;E41KK#OQW zkIUlFw7a(T;_z^ur`Ga;S`$n>M$}EgQY=29Uh)n*uPYw+;OV3K>Fo^d;^XOFLVxHi~ z7n8SkgaJWsyIPhe!UVZuTEZIIlms?Iitw!KI0c`buU_!65j@NV1+Y3=YOiy~k$E{P zlb^?Xh+Dy5i7_jB*yYsOvw2vq=8OPCk!bso{${etu8~0*yzhx`&`aq?R9&d*hBKb% z2<=cB$BOIx&KuSv*wqo^W#UXjk?WnjALFR+FY^szfejqNp-`#xO9gYMFj@V@>cV}E z!iqTy&_-n&MR3LN2qdJZe@!Rjax&T}0>bwC+iWNf*vWr17$jw9XX^CVH#;;e3|*Y1 zTu9~ZU4+aHE$#k}q0+|Bq2(NsCFze&_1j;WbwMjGLwl<>W>Sa{4oou7{$o$&-9bB^3!`I@eFB$0O&IvNtXNh#bT z4j6>s!GbVc4~dfkVIq|sN+ca}ddP}nt$NGtJ~ZkZ=!)ZNxzk@C0!D{Q9&jZq4i7oE zfavXO2t;MJx@RW3&i*8xI;e)SpRwCmc{CY)DWdCEBi2o(#%Zh3WL30Z;rGsp8aEHS z{+`0|(^#98J5LSo_eEKwF+N34lqn)&5Ii1UMp4K|!NjY_k5UnDAt7*gc>6~L`|;Bt z<0Vm%v_x zWz#+z>a}8BHz;idO~1k3(AgMsXju`BzM6U=eHa6kMGm}|0Dia zpna31w2yQ_GE=5B*?Jp%c|!g^2->NOOj$=RFt*!4!~pNpDnA`Koz&CkNbiLZMGWo+J#c zJD2RD4Q9EsrUNGI3J$eQaB)y&ELwG@rfJ;~WE}Y=i)Pt-uR=B8jzEl6mkS~Zn0QFq zq^69q^N+OTCs2bQ&fs3$ z`<4H|H}g%L#BT<-O2NyPIwY90g^t05*_y->a@76c6*&o@#I7>=Wi`_|U5oNSXE^Jl zqCU@`5$Y=8x^do}Vec+}1ywK)z@MH_FRc4=X^nQ|&-l=KadOgrwC(5D?f;H*G%^lY#1=7( z`4WOyN^3t;G8qXB4?CC-L!k&G;%mJ-Pv)fMgn{^p>_{GDT2de!ru4~_f|fb#=Cmt4 zRPQ$tfo`+9b$&AE&dm4 z?-*VO+jWaJwr$(CZQHgQCrujLYHXviZ8VMT#&*LdIjimSY@V;D@80LSva2Z%a zCYHipboGe3Jh$3euCTLcLe$kW>hNxdWER~N;j^Dz1u&EmD_m-W{gizwlV9JreIpcCRvb0gxsl-zz)9Y6{18#Iqhx5F8Jn8 z!+q)R(UJui?)Z;c{;waK|GVLSn=4rHCtn`GQfP5=Mv;`1_6U;jSH?vbtpP@>%|%uw zg+Z?hpl0usVhFDoNWpFXfr`Vfn*XaIn{ch-l%_EnWpTFH&*WnH`1<+;w?)>5FAY2& zOPqKr|NX;xFA{6a_p)<2SJrbMZ2Sx*YRAnGrPMBzq?dESt?}Sm~ z!->mNq|aWQYyswov9~U{iBnxSg^BWgt-0u^DDJ6QM~uh~FAPFVo(yt*mL0Qrl#tX5 ztTvX*TIb`1i4S3%Sy7`4ZNTCqi=^3RCQFC+?LPjQ*CiT}Gc*YIlDehKPrTDd9XZr4 zmp$iqaqW*^-k&{P%he$1iaS-VL@Ff2KO(NUo``*cp^4AHz!EvqhrhjyimC{DX4N%C z+Ci#T40&0=yt-__H{kQCT|ThTeCy2x6+1DP5=w4zn-=^S-4$?Bda%WD+SGW=wYvoy zoztSENa^KR98fQ+G6-&OK4-T!W~E<0d&iA;aQPeo%Fy4$aNG)tvp$q1`?yY{xh6w9 z|5nq0e(#|$*d&ux;M|k3hM>+-eghg!#^1;pWysR*3>C{Vj$%8_f#sU&Gv<-80rC1v zmr099PP7N$9%6q)@Bf4T?cYW~h*anw;WJlt9Tgol)K_@YgSc4}DF#&Ga7!Ur|MxV- z>8jR!gT-*D8Q75O{ZP1saWY?nseGJ=APDesK1^@s#sp!dT|qp!e{lb?zy$;xgjKi5 zZBzA9)!Ef}hyVI`QQZwBYiuBr5pZ&4JWV~h|5cid8#CJ4k?Qh1{dwPGgVsJ)VDelW zM-42U%gp@lYaKAzXThrTUFtv-=nW}WyV$8KN{w+f3rHl+11xze$FC{ubO)#bofo2l{}c-Q0aDF>bv!+d13LuG#bAs^c!j0! zn4ZTKlqr|Qk7<-m-Y>G1bZi1+ATFegMkOvuD$4T`3EvtrDSy%BuDswC4^g%aOICy-TJWnjOnZ^1 zu7v!V32nr6w3rXNjB35(mB*PyE&e4Q=FJYZs!i(e=kZD;puKby3Gux#SI19_kRnDQ z)0U;_Y!b3**m>-jrE;sm`rQ&SXYHYf&eZt~m0ZlLHwbKk5Cv&)msolW=a?N#)6rQ! z6!mOgyTJ82Y4$HNLrscCj?@uGS`kLVu@AOVD%H8%&!|~_7I8k@QhL(4aY|q!&Yds< zAPe}MW8r7L;n5Mbb^rJa}Q%{NKAV^pG` zcE?iBjYFdza#*7n)zJbRsy!#k_n`*#uO5#_-QsrXNXP{c67WW#v5qh9-ivUbsZIR6 zTSn(=T=AM6GZNh2xnn~T?IYzlMV-4`Dqu=nzPJIIltT4$4z|El2jYz$J;}7r&h2Ux~Z_G@;c`pY!E}YhZwhe3oCM{|DjeE66Or zJKi^LbI@ZKZ_V#zuH(V1NH=-#L#|e^$jd@lxO{zyEav7@qiiGE;!}}Ibv^_}Q6w=? zv^RK~!>D&7XF6S!oAG%Bmxuz_P>)zhKl&(ympt}V*9`l66eJDfKiqD6(|+S(39glD zU>I@0HP{AAI9=ygUD@UpHX8WX|HKnc5XPyvf}u_pM#!cka$XmvV4 zJ!TJXczVeN6ja#kGb#-43i1~@Cp2n(&S4uxqIASu#2qH8ny_;UEFId)ERWfx;(cQ6 zZaKdUCBCIRIkIcGU0dpv8k-y&1kW)>I%sH0rHkSZcFol|o66v&$!8zo14z>7E zXzC-;_&~)O!TbroD@r270|;w{aS zf76|>*{P>5O&_R&O!%SHjn0JdHseraKoAmy++_eNFA5rywk@02YD2^HMOU>vfl;@T zD_P05#3(LYk@ z_Byz?K?}uMvM%2d_vrbEuJ8Q?bbF>J$c^S)tzg(2pHhUCaGlP6wJ3jxnW;;qV>kC2 zxw=|Y9-+og z@O~U3e0&P+Ufdr>dxK+fkZi1(t0LxB-L^x6TkiR6l(k6p*)|)et=A)Jy0|=D3I5^N z3VOU@J6Ii{&SCwr&i!9{$iLziN&wvvB}Be@-_tg`wlu31cdS&Qgj;n`YS4f=5u(mP zHHW6Usv7It0xzhj+)!UZ0qXR2NUgThiA)~%iSe}MUs?;pON)6(%&wD(zF*M-g~$xb zt}Aql%1LBvytk#2bicXEXjEm}B0x=l3uGDj1XVUfdy{lAi93mv?fk8;BPfuZNcY6u z6gCJ921!&dsK!!AA`_9iG)T1nYIpCjmh1&*`aK!Z@?mrEDr#53M53Xl6p`t{EtI$+ zo45u%*2X$`(Fs#wZ8=Flm<1Pl-3StKKG}ITlqyB);!FHy3Py~zg@RJdoH68rgCx9* zEz6BR@F}o3$IH0w*Ur#%26Aj#qX;14E>J1 zOS&Y^1##G8ZUeS7fSjN>$*i0RZFYA&K^bEdQ+s_K`%z$!gZu-WjlbS7_%klenrTsc z)NIsUlD@d-)-P$2*~l!vUosB=e~+~PM*Z(L*YzKB7F1N66lZAPy%{>Mn6grN_^_hj2yf9+c zv`lUa`^5$e%xEGgCd{7@nLNJ+vNs=@R6B-7;o^e(y(1Af-zd3`kIwCi@mA?gX&Dtv zkc-V7m@P4}t&W$zeU4&k(>EFE`l0BX*O#6YiWqE%=xJ|jEYO=~GCsVDpod*pypy0M z%~-_J`A5B1^=7CvEfQ+Y5&%!@SwrP*daib`0_K_k)-ebXoL1({X)e6akbh_%C`WCW z@}jGcwwvhn)MlS6R0~9xcy#&J28626QymmW6IX78g_>T~*Z=YMV9$>LOMt;BjR^*h zMzbG$abTXjpf1yF&1f9t*T}MmCYfyoh||D7+EnuYIFqZm8vnHJ&#!;mQx!Xh8AViI zdQ@#|vvn5{j)UTD&=3)&15^{`6j~ypCnNJ^{`gfd7M^xwE2dXU0n32p{BVID!1H9Y z>M6A#*8xEB?&h}R>g4`D=N*225pjRb%9Rh((svI;O|uHQ$=9hSW3w_v%yE?0cn;ok z0uKFEiasc;>u)?9lpI*n>tzqiyOuJJPVvk^wOVhHFN7uW#6SjIgM=K9TdTaL#OSmX zY_p48ZAX*RsnA&!N1|2%vnwh&#d>{m#3>yMs#j`Tq58;BsvT)mlpybiUsg&(eLhQS zv36WqKqMhNm|Tp?kzLTWNdS*qdoX5{8lFqn$_qOr@F|zetg

E`9IKCCQsK*=gg^ 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≈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�drC6Y9PT~e*y?6mS@TDppW0Bh> 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 TF_~PPT%4XvF`4e6MU&}&q85~c diff --git a/com.ibm.wala.cast.test/.launchConfigurations/com.ibm.wala.cast.test-JUnit.launch b/com.ibm.wala.cast.test/.launchConfigurations/com.ibm.wala.cast.test-JUnit.launch index e03f9e6f1..725660f21 100644 --- a/com.ibm.wala.cast.test/.launchConfigurations/com.ibm.wala.cast.test-JUnit.launch +++ b/com.ibm.wala.cast.test/.launchConfigurations/com.ibm.wala.cast.test-JUnit.launch @@ -1,17 +1,16 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCAstPattern.java b/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCAstPattern.java index 031a686ad..4e92cb4c5 100644 --- a/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCAstPattern.java +++ b/com.ibm.wala.cast.test/harness-src/com/ibm/wala/cast/test/TestCAstPattern.java @@ -18,6 +18,8 @@ import java.util.Map; import junit.framework.Assert; +import org.junit.Test; + import com.ibm.wala.cast.tree.CAstNode; import com.ibm.wala.cast.tree.impl.CAstImpl; import com.ibm.wala.cast.util.CAstPattern; @@ -101,7 +103,7 @@ public class TestCAstPattern extends WalaTestCase { simpleNameMap = Ast.testNameMap; } - public void testSimpleName() { + @Test public void testSimpleName() { test(simpleNamePattern, simpleNameAst, simpleNameMap); } @@ -121,7 +123,7 @@ public class TestCAstPattern extends WalaTestCase { simpleStarNameMap = Ast.testNameMap; } - public void testSimpleStarName() { + @Test public void testSimpleStarName() { test(simpleStarNamePattern, simpleStarNameAst, simpleStarNameMap); } @@ -141,7 +143,7 @@ public class TestCAstPattern extends WalaTestCase { simpleRepeatedMapOne = Ast.testNameMap; } - public void testSimpleRepeatedOne() { + @Test public void testSimpleRepeatedOne() { test(simpleRepeatedPattern, simpleRepeatedAstOne, simpleRepeatedMapOne); } @@ -160,7 +162,7 @@ public class TestCAstPattern extends WalaTestCase { simpleRepeatedMapTwo = Ast.testNameMap; } - public void testSimpleRepeatedTwo() { + @Test public void testSimpleRepeatedTwo() { test(simpleRepeatedPattern, simpleRepeatedAstTwo, simpleRepeatedMapTwo); } @@ -180,7 +182,7 @@ public class TestCAstPattern extends WalaTestCase { simpleRepeatedMapThree = Ast.testNameMap; } - public void testSimpleRepeatedThree() { + @Test public void testSimpleRepeatedThree() { test(simpleRepeatedPattern, simpleRepeatedAstThree, simpleRepeatedMapThree); } @@ -201,7 +203,7 @@ public class TestCAstPattern extends WalaTestCase { simpleDoubleStarMap = Ast.testNameMap; } - public void testSimpleDoubleStar() { + @Test public void testSimpleDoubleStar() { test(simpleDoubleStarPattern, simpleDoubleStarAst, simpleDoubleStarMap); } @@ -222,7 +224,7 @@ public class TestCAstPattern extends WalaTestCase { simpleAlternativeMap = Ast.testNameMap; } - public void testSimpleAlternative() { + @Test public void testSimpleAlternative() { test(simpleAlternativePattern, simpleAlternativeAst, simpleAlternativeMap); } @@ -243,7 +245,7 @@ public class TestCAstPattern extends WalaTestCase { simpleOptionalMapWith = Ast.testNameMap; } - public void testSimpleOptionalWith() { + @Test public void testSimpleOptionalWith() { test(simpleOptionalPattern, simpleOptionalAstWith, simpleOptionalMapWith); } @@ -261,7 +263,7 @@ public class TestCAstPattern extends WalaTestCase { simpleOptionalMapNot = Ast.testNameMap; } - public void testSimpleOptionalNot() { + @Test public void testSimpleOptionalNot() { test(simpleOptionalPattern, simpleOptionalAstNot, simpleOptionalMapNot); } @@ -283,7 +285,7 @@ public class TestCAstPattern extends WalaTestCase { recursiveTreeOneMap = Ast.testNameMap; } - public void testRecursiveTreeOne() { + @Test public void testRecursiveTreeOne() { test(recursiveTreePattern, recursiveTreeOneAst, recursiveTreeOneMap); } @@ -303,7 +305,7 @@ public class TestCAstPattern extends WalaTestCase { recursiveTreeTwoMap = Ast.testNameMap; } - public void testRecursiveTreeTwo() { + @Test public void testRecursiveTreeTwo() { test(recursiveTreePattern, recursiveTreeTwoAst, recursiveTreeTwoMap); } @@ -327,22 +329,22 @@ public class TestCAstPattern extends WalaTestCase { recursiveTreeFiveMap = Ast.testNameMap; } - public void testRecursiveTreeFive() { + @Test public void testRecursiveTreeFive() { test(recursiveTreePattern, recursiveTreeFiveAst, recursiveTreeFiveMap); } private final CAstPattern buggyRecursiveTreePattern = CAstPattern .parse("|({leaf}|(CONSTANT()||VAR(*))|||{node}BINARY_EXPR(\"+\",`leaf`,`node`))|"); - public void testBuggyRecursiveTreeOne() { + @Test public void testBuggyRecursiveTreeOne() { test(buggyRecursiveTreePattern, recursiveTreeOneAst, null); } - public void testBuggyRecursiveTreeTwo() { + @Test public void testBuggyRecursiveTreeTwo() { test(buggyRecursiveTreePattern, recursiveTreeTwoAst, null); } - public void testBuggyRecursiveTreeFive() { + @Test public void testBuggyRecursiveTreeFive() { test(buggyRecursiveTreePattern, recursiveTreeFiveAst, null); } @@ -351,15 +353,15 @@ public class TestCAstPattern extends WalaTestCase { private final CAstPattern testedTreePattern = CAstPattern.parse("{top}|(" + recursiveTreeStr + "||BINARY_EXPR(\",\"," + extraTestsStr + ",`top`))|"); - public void testTestedTreeOne() { + @Test public void testTestedTreeOne() { test(testedTreePattern, recursiveTreeOneAst, recursiveTreeOneMap); } - public void testTestedTreeTwo() { + @Test public void testTestedTreeTwo() { test(testedTreePattern, recursiveTreeTwoAst, recursiveTreeTwoMap); } - public void testTestedTreeFive() { + @Test public void testTestedTreeFive() { test(testedTreePattern, recursiveTreeFiveAst, recursiveTreeFiveMap); } @@ -379,7 +381,7 @@ public class TestCAstPattern extends WalaTestCase { testedTreeOneMap = Ast.testNameMap; } - public void testTestedTreeOneWithTest() { + @Test public void testTestedTreeOneWithTest() { test(testedTreePattern, testedTreeOneAst, testedTreeOneMap); }