# Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# This directory contains tests that are intended to show the
# current state of the language.

# In order to maintain maximum test coverage for all builds,
# please use the following procedure to mark a test
# failed on an architecture other than the one you are working on.
#
# 1) Copy the old version of the test to [runtime|compiler]/tests/dart/src
# 2) Rename the file with a 'Legacy' prefix.
# 3) File a bug for the failure due to the language change.
# 4) Update the dart.status and language.status files appropriately.
# 5) Update the language/src directory with the updated test.

prefix language


[ $arch == ia32 || $arch == dartium ]
ClassTest: Fail             # Bug 4504458 (pseudo keyword)
NamingTest: Fail            # Bug 4504458 (pseudo keyword)
SuperTest: Fail             # Bug 4995181
TypeVariableBoundsTest/none: Fail # Bug 5257789
TypeVariableBoundsTest/02: Fail # Bug 5257789
TypeVariableBoundsTest/03: Fail # Bug 5257789
TypeVariableBoundsTest/04: Fail # Bug 5257789
TypeVariableBoundsTest/07: Fail # Bug 5257789
TypeVariableScopeTest/03: Fail # Bug 5349550, was 5316513
TypeVariableScopeTest/04: Fail # Bug 5349550, was 5316513
FauxverrideTest/01: Fail # Bug 5328413
FauxverrideTest/02: Fail # Bug 5328413
FauxverrideTest/03: Fail # Bug 5328413
ImpliedInterfaceTest: Fail # Bug 5349944
OverrideMethodWithFieldTest: Fail # Bug 5384453
FieldOverrideTest/none: Fail # Bug 5384222
FieldOverrideTest/01: Fail # Bug 5384222
CallThroughNullGetterTest: Fail # Bug 4968741

# These bugs refer currently ongoing language discussions.
ExampleConstructorTest: Fail    # Bug 4995181


# Regular bugs which should be fixed.
SuperNegativeTest: Fail         # Bug 4400118 - Language still in flux.
ManyEchoServerTest: Skip        # Bug 5103754
CanonicalConstTest: Fail        # Bug 5270133
OverrideFieldTest/none: Fail    # Bug 5384222
GenericParameterizedExtendsTest: Skip  # Bug 5391643

# Problems specific to dartc optimized mode
[ ($arch == dartc || $arch == chromium) && $mode == release ]
MethodInvocationTest: Fail           # Bug  5392266
Label2NegativeTest: Crash            # Bug 5318228
NullPointerExceptionTest: Fail       # Bug 5391976
CallThroughNullGetterTest: Fail      # Bug 5391976
Private3Test: Fail                   # Bug 5391976
Switch3NegativeTest: Crash           # Bug 5318228

# Tests that pass in release mode but fail in debug mode
[ ($arch == dartc || $arch == chromium) && $mode == debug ]


[ $arch == dartc || $arch == chromium ]
Prefix11NegativeTest: Fail # Bug 5406175
Prefix12NegativeTest: Fail,Crash # Bug 5406175
FunctionTypeParameterNegativeTest: Fail # Bug 4568007
ImplicitScopeTest: FAIL              # Nested statements can be declarations
ConstConstructor1NegativeTest: FAIL  # 5142545
ConstConstructor2NegativeTest: FAIL  # 5142545
MathTest: FAIL                       # 5165080
StringConcatTest: FAIL               # 5196164
NamedParametersTest: Fail            # Implementation in progress.
NamedParametersTypeTest: Fail        # Implementation in progress.
NamedParametersWithConversionsTest: Fail # Implementation in progress.
NamedParametersNegativeTest: Skip    # Implementation in progress.
NamedParameters2NegativeTest: Skip   # Implementation in progress.
NamedParameters3NegativeTest: Skip   # Implementation in progress.
NamedParameters4NegativeTest: Skip   # Implementation in progress.
NamedParameters5NegativeTest: Skip   # Implementation in progress.
NamedParameters6NegativeTest: Skip   # Implementation in progress.
NamedParameters7NegativeTest: Skip   # Implementation in progress.
NamedParameters8NegativeTest: Skip   # Implementation in progress.
ScopeVariableTest: Fail              # 5244704
Field1NegativeTest: Fail             # 5253031
InstFieldInitializerTest: Fail       # Cannot deal with static final values in const expression.
RegExp3Test: Fail                    # 5299683
InterfaceFactory3NegativeTest: Fail  # 5387405
GenericParameterizedExtendsTest: Skip  # Bug 5392297
ConstObjectsAreImmutableTest: Fail  # Bug 5202940
SuperNegativeTest: Fail # Now that super calls are automatically injected this test doesn't make sense

# Crashes in dartc.
FunctionTypeAliasTest: Crash  # Bug 4519208.

# Other bugs (or unimplemented features) in dartc.
GenericTest: Fail            # Bug 5393302 (missing call to super constructor)
Throw7NegativeTest: Fail     # Bug 4208459.
Throw3Test: Fail             # Bug 4205624.
SwitchLabelTest: Fail        # Bug 4208467.
Switch7NegativeTest: Fail    # Bug 4208467.
StackOverflowTest: Fail      # Bug 4591172.
ScopeNegativeTest: Fail      # Bug 4207538.
PseudoKWNegativeTest: Fail   # Bug 4979760.
OverriddenNoSuchMethodTest: Fail  # Bug 4202974.
ManyOverriddenNoSuchMethodTest: Fail  # Bug 4202974.
NoSuchMethodTest: Fail       # Bug 4202974.
NumbersTest: Fail            # Fails because numbers are mapped to doubles.
LocalFunctionTest: Fail      # Bug in test. Bug 4202989 (shadowing).
LocalFunction3Test: Fail     # Bug 4202974.

FieldNegativeTest: Fail      # Bug 4207626.
FunctionTypeAliasNegativeTest: Fail  # Bug 5231617.
ExampleConstructorTest: Fail  # Bug 4205742.
CTConstTest: Fail            # Bug 4510015.
Constructor2NegativeTest: Fail  # Bug 4208594.
ClassOverrideNegativeTest: Fail  # Bug 4205768.
BitOperationsTest: Fail      # Uses bignums.
ListLiteral3Test: Fail      # Bug 4510015.
ListTest: Fail              # Bug 5146975.
StackTraceTest: Fail         # Bug 4971920.
ExpectTest: Fail             # Missing extensions to class Expect.
DivByZeroTest: Fail          # Bug 5184183
OverrideFieldMethod1NegativeTest: Fail # Bug 5215249
OverrideFieldMethod2NegativeTest: Fail # Bug 5215249
OverrideFieldMethod3NegativeTest: Fail # Bug 5215249
OverrideFieldMethod4NegativeTest: Fail # Bug 5215249
OverrideFieldMethod5NegativeTest: Fail # Bug 5215249
OverrideFieldMethod6NegativeTest: Fail # Bug 5215249
CharEscapeTest: Fail
FunctionTypeParameter2NegativeTest: Fail # Bug 4568007

# The following tests use missing error classes. Bug 4385894.
TypeTest: Fail               # Uses TypeError class.
AssertTest: Fail             # Uses AssertError class.

ThirdTest: Fail # Bug 5339586



[ $arch == chromium ]
ApplicationTest: Fail                 # Bug 5145731
TopLevelMultipleFilesTest: Fail       # Bug 5145731
TopLevelNonPrefixedLibraryTest: Fail  # Bug 5145731
TopLevelPrefixedLibraryTest: Fail     # Bug 5145731
TopLevelEntryTest: Fail               # Bug 5145731
PrivateTest: Fail                     # Bug 5145731
Private3Test: Fail                    # Bug 5145731

Prefix1NegativeTest: Skip # Bug 5406175
Prefix2NegativeTest: Skip # Bug 5406175
Prefix3NegativeTest: Skip # Bug 5406175
Prefix4NegativeTest: Skip # Bug 5406175
Prefix5NegativeTest: Skip # Bug 5406175
Prefix6NegativeTest: Skip # Bug 5406175
Prefix7NegativeTest: Skip # Bug 5406175
Prefix8NegativeTest: Skip # Bug 5406175
Prefix9NegativeTest: Skip # Bug 5406175
Prefix10NegativeTest: Skip # Bug 5406175
Prefix11NegativeTest: Skip # Bug 5406175
Prefix12NegativeTest: Skip # Bug 5406175
PrefixTest: Crash,Fail # Bug 5406175
Prefix10Test: Crash,Fail # Bug 5406175
Prefix11Test: Crash,Fail # Bug 5406175
Prefix12Test: Crash,Fail # Bug 5406175
LibraryPrefixesTest: Fail # Bug 5406175
TopLevelNonPrefixedLibraryTest: Fail # Bug 5406175

[ $arch == chromium && $mode == release ]
Instanceof2Test: Fail, Pass # Bug 5275232


[ $arch == ia32 ]

[ $arch == dartium ]
Prefix1NegativeTest: Skip            # Bug 5072252
Prefix2NegativeTest: Skip            # Bug 5072252
Prefix3NegativeTest: Skip            # Bug 5072252
Prefix4NegativeTest: Skip            # Bug 5072252
Prefix5NegativeTest: Skip            # Bug 5072252
Prefix6NegativeTest: Skip            # Bug 5072252
Prefix7NegativeTest: Skip            # Bug 5072252
Prefix8NegativeTest: Skip            # Bug 5072252
Prefix9NegativeTest: Skip            # Bug 5072252
Prefix10NegativeTest: Skip           # Bug 5072252
Prefix11NegativeTest: Skip           # Bug 5072252
Prefix12NegativeTest: Skip           # Bug 5072252
PrefixTest: Skip                     # Bug 5072252
Prefix10Test: Skip                   # Bug 5072252
Prefix11Test: Skip                   # Bug 5072252
Prefix12Test: Skip                   # Bug 5072252
LibraryPrefixesTest: Skip            # Bug 5072252
TopLevelNonPrefixedLibraryTest: Skip # Bug 5072252
ApplicationTest: Fail                # Bug 5072252
TopLevelEntryTest: Fail              # Bug 5072252
TopLevelMultipleFilesTest: Fail      # Bug 5072252
AbstractStaticNegativeTest: Skip     # Bug 5408067

# print and println are not implemented yet
Throw5Test: Skip
ExceptionTest: Skip
MathTest: Skip
ExpectTest: Skip
StringInterpolateTest: Skip
ExecuteFinally7Test: Skip
SavannahTest: Skip
Throw2Test: Skip
Throw3Test: Skip
HelloDartTest: Skip
ThrowTest: Skip
TryCatch3Test: Skip
StackTraceTest: Skip
Throw1Test: Skip
RegExp2Test: Skip
FannkuchTest: Skip
RichardsTest: Skip
Throw6Test: Skip
RegEx2Test: Skip
DivByZeroTest: Skip
UnboundGetterTest: Skip
NativeTest: Skip
Throw4Test: Skip
ImplicitClosure1Test: Skip
Private2Test: Skip

TypedMessageTest: Skip # Bug 5246195

# Expect is not available
Private3Test: Skip
Library1Test :Skip

[ $arch == dartium || $arch == chromium ]
PrivateTest: Fail                     # Bug 5382463
HelloScriptTest: Fail # Bug 5072252
ImportCoreImplNoPrefixTest: Fail # Bug 5382463
ImportCoreNoPrefixTest: Fail # Bug 5382463

# Bug 5293748
GenericInstanceofTest: Skip
GenericInheritanceTest: Skip
GenericParameterizedExtendsTest: Skip
MultiPassTest: Skip
OverriddenNoSuchMethodTest: Skip
BinaryTreesTest: Skip
NBodyTest: Skip
Library1Test: Skip
ManyGenericInstanceofTest: Skip
DeltaBlueTest: Skip
MandelbrotTest: Skip
DeltaBlueClosureTest: Skip
ManyOverriddenNoSuchMethodTest: Skip
MultiPass2Test: Skip
RichardsTest: Skip

[ $arch == x64 ]
*: Skip

[ $arch == simarm ]
*: Skip

[ $arch == arm ]
*: Skip
