Test that component kit headers skips imported headers

Reviewed By: jvillard

Differential Revision: D3706184

fbshipit-source-id: e8d4c8b
master
Ryan Rhee 9 years ago committed by Facebook Github Bot 5
parent a134669f73
commit 957bdde05e

@ -24,6 +24,7 @@ from __future__ import unicode_literals
import json
import os
import platform
import shutil
import subprocess
import sys
@ -473,6 +474,13 @@ class BuildIntegrationTest(unittest.TestCase):
[],
preprocess=preprocess)
def test_clang_component_kit_imports(self):
test('componentkit', 'component quality analyzer skips imports',
os.path.join(CODETOANALYZE_DIR, 'componentkit'),
[{'compile': ['clang', '-x', 'objective-c++', '-std=c++11', '-c',
'TestIgnoreImports.mm'],
'infer_args': ['--cxx', '--no-filtering']}])
def test_pmd_xml_output(self):
def pmd_check(infer_out):
assert os.path.exists(os.path.join(infer_out, 'report.xml'))

@ -0,0 +1,16 @@
/*
* Copyright (c) 2016 - present Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
class Foo {
public:
int foo() {
int i = 3;
return i;
}
};

@ -0,0 +1,37 @@
/*
* Copyright (c) 2016 - present Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
#include "HeaderWithMutableLocalVar.h"
#define nil 0
// Mimic importing CKComponnet
@interface CKComponent
@end
@implementation CKComponent
@end
// Mimic importing CKCompositeComponnet
@interface CKCompositeComponent : CKComponent
+ (instancetype)newWithComponent:(CKComponent*)component;
@end
@implementation CKCompositeComponent
+ (instancetype)newWithComponent:(CKComponent*)component {
return nil;
}
@end
@interface SomeClass : CKCompositeComponent
@end
@implementation SomeClass
+ (instancetype) new {
int i; // error
return nil;
}
@end

@ -0,0 +1,7 @@
[
{
"bug_type": "MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE",
"file": "TestIgnoreImports.mm",
"procedure": "frontend_checks_8553f84118792da22c2edad39b882724"
}
]
Loading…
Cancel
Save