# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

############################################################
# flexunit
############################################################
flexunit.server.all.excludes=testcases.flexunit.ws_general_generated_runner_mxml#testDecodeBooleansTest_testDataLoaded
flexunit.server.all.excludes.automationonly=testcases.flexunit.ws_general_generated_runner_mxml#testDecodeBooleansTest_testDataLoaded


############################################################
# mxunit
############################################################
mxunit.server.all.excludes=testcases.mxunit.messagingService_proBadDestinationTest#testbadDestTest
mxunit.server.all.excludes.automationonly=testcases.mxunit.messagingService_proBadDestinationTest#testbadDestTest
