/*
 * Copyright 2013 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */
#include "SkRTConf.h"
#include "Test.h"

SK_CONF_DECLARE(int, c_RTConfTestVariable,
                "test.utils.rtconf.testVariable", 1,
                "This is only a test. Do not be alarmed.");
// TODO(skia-team): more comprehensive unit tests of the SkRTConf
// system.
DEF_TEST(RuntimeConfig, reporter) {
    REPORTER_ASSERT(reporter, 1 == c_RTConfTestVariable);

    SK_CONF_SET("test.utils.rtconf.testVariable", 2);
#ifdef SK_DEVELOPER
    REPORTER_ASSERT(reporter, 2 == c_RTConfTestVariable);
#else  // not SK_DEVELOPER
    // Can not change RTConf variables in Release.
    REPORTER_ASSERT(reporter, 1 == c_RTConfTestVariable);
#endif  // SK_DEVELOPER

    // This should not give a warning.
    SK_CONF_TRY_SET("test.utils.rtconf.nonexistentVariable", 7);
}
