133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp/*
233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp *  Copyright 2012 The LibYuv Project Authors. All rights reserved.
333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp *
433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp *  Use of this source code is governed by a BSD-style license
533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp *  that can be found in the LICENSE file in the root of the source
633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp *  tree. An additional intellectual property rights grant can be found
733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp *  in the file PATENTS.  All contributing project authors may
833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp *  be found in the AUTHORS file in the root of the source tree.
933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp */
1033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp
1133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#include <stdlib.h>
1233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#include <string.h>
1333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp
1433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#include "libyuv/basic_types.h"
1533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#include "libyuv/version.h"
1633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#include "../unit_test/unit_test.h"
1733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp
1833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampnamespace libyuv {
1933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp
2033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// Tests SVN version against include/libyuv/version.h
2133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// SVN version is bumped by documentation changes as well as code.
2233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// Although the versions should match, once checked in, a tolerance is allowed.
2333cfdeb7b267ab635413797fffb046b73272f7ecHendrik DahlkampTEST_F(libyuvTest, TestVersion) {
2433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp  EXPECT_GE(LIBYUV_VERSION, 169);  // 169 is first version to support version.
2533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp  printf("LIBYUV_VERSION %d\n", LIBYUV_VERSION);
2633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#ifdef LIBYUV_SVNREVISION
2733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp  const char *ver = strchr(LIBYUV_SVNREVISION, ':');
2833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp  if (ver) {
2933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp    ++ver;
3033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp  } else {
3133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp    ver = LIBYUV_SVNREVISION;
3233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp  }
3333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp  int svn_revision = atoi(ver);  // NOLINT
3433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp  printf("LIBYUV_SVNREVISION %d\n", svn_revision);
3533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp  EXPECT_NEAR(LIBYUV_VERSION, svn_revision, 3);  // Allow version to be close.
3633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp  if (LIBYUV_VERSION != svn_revision) {
3733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp    printf("WARNING - Versions do not match.\n");
3833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp  }
3933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#endif
4033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp}
4133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp
4233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp}  // namespace libyuv
43