/* * 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. */ /* $Rev$ $Date$ */ /** * Test cache functions. */ #include #include #include #include #include #include #include "slist.hpp" #include "cache.hpp" namespace tuscany { namespace cache { const std::string fileRead(const std::string path) { std::ifstream is(path); return car(streamList(is)); } bool testCache() { const std::string p("tmp/test.txt"); const lambda fr(fileRead); const lambda ft(latestFileTime); const cached c(curry(fr, p), curry(ft, p)); { std::ofstream os(p); os << "initial"; os.close(); assert(std::string(latest(c)) == std::string("initial")); } usleep(1000000); { std::ofstream os(p); os << "updated"; os.close(); assert(latest(c) != c); assert(std::string(latest(c)) == std::string("updated")); assert(latest(c) == latest(c)); } return true; } } } int main() { std::cout << "Testing..." << std::endl; tuscany::cache::testCache(); std::cout << "OK" << std::endl; return 0; }