13604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot/*
23604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * Copyright (C) 2012 The Android Open Source Project
33604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot *
43604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * Licensed under the Apache License, Version 2.0 (the "License");
53604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * you may not use this file except in compliance with the License.
63604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * You may obtain a copy of the License at
73604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot *
83604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot *      http://www.apache.org/licenses/LICENSE-2.0
93604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot *
103604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * Unless required by applicable law or agreed to in writing, software
113604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * distributed under the License is distributed on an "AS IS" BASIS,
123604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * See the License for the specific language governing permissions and
143604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * limitations under the License.
153604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot */
163604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotpackage com.android.test.runner.junit4;
173604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot
183604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotimport org.junit.runners.BlockJUnit4ClassRunner;
193604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotimport org.junit.runners.model.FrameworkMethod;
203604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotimport org.junit.runners.model.InitializationError;
213604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotimport org.junit.runners.model.Statement;
223604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot
233604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot/**
243604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * A specialized {@link BlockJUnit4ClassRunner} that will generate test results, by skipping test
253604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot * execution and loading.
263604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot */
273604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabotclass NonExecutingJUnit4ClassRunner extends BlockJUnit4ClassRunner {
283604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot
293604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot    private static final Statement NON_EXECUTING_STATEMENT = new Statement() {
303604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot        @Override
313604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot        public void evaluate() throws Throwable {
323604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot            // do nothing
333604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot        }
343604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot    };
353604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot
363604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot    public NonExecutingJUnit4ClassRunner(Class<?> klass) throws InitializationError {
373604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot        super(klass);
383604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot    }
393604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot
403604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot    /**
413604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot     * Override parent to generate an non executing statement
423604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot     */
433604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot    @Override
443604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot    protected Statement methodBlock(FrameworkMethod method) {
453604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot        return NON_EXECUTING_STATEMENT;
463604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot    }
473604db5bcd124dfd1396fb51434d3f4337690cffBrett Chabot}
48