Skip to content

Commit 042fea6

Browse files
authored
Merge pull request #22990 from MathiasVP/replace-ql-models-with-mad-for-assoc-cleaned-up-2
C++: Modify tests for an upcoming PR
2 parents 48df730 + 559f91e commit 042fea6

21 files changed

Lines changed: 4395 additions & 4042 deletions

File tree

‎cpp/ql/test/include/type_traits.h‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
#if !defined(CODEQL_TYPE_TRAITS_H)
22
#define CODEQL_TYPE_TRAITS_H
33

4-
typedef unsigned long size_t;
4+
using size_t = decltype(sizeof(0));
55

66
namespace std {
7+
using size_t = decltype(sizeof(0));
78
template<class T>
89
struct remove_const { typedef T type; };
910

‎cpp/ql/test/library-tests/dataflow/external-models/asio_streams.cpp‎

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11

22
// --- stub library headers ---
33

4-
#include "std_string.h"
4+
#include "../taint-tests/stl.h"
55

66
#define SIZE_MAX 0xFFFFFFFF
77

8-
namespace std {
9-
class string_view {
10-
public:
11-
string_view(const char* s);
12-
};
13-
};
14-
158
namespace boost {
169
namespace system {
1710
class error_code {
@@ -150,20 +143,20 @@ void test_resolve_host() {
150143
sink(resolver.resolve(host, service, flags)); // $ ir
151144
sink(resolver.resolve(host, service, flags, error)); // $ ir
152145

153-
sink(resolver.resolve(host_view, service_view)); // $ ir
154-
sink(resolver.resolve(host_view, service_view, error)); // $ ir
155-
sink(resolver.resolve(host_view, service_view, flags)); // $ ir
156-
sink(resolver.resolve(host_view, service_view, flags, error)); // $ ir
146+
sink(resolver.resolve(host_view, service_view)); // $ MISSING: ir
147+
sink(resolver.resolve(host_view, service_view, error)); // $ MISSING: ir
148+
sink(resolver.resolve(host_view, service_view, flags)); // $ MISSING: ir
149+
sink(resolver.resolve(host_view, service_view, flags, error)); // $ MISSING: ir
157150

158151
sink(resolver.resolve(protocol, host, service)); // $ ir
159152
sink(resolver.resolve(protocol, host, service, error)); // $ ir
160153
sink(resolver.resolve(protocol, host, service, flags)); // $ ir
161154
sink(resolver.resolve(protocol, host, service, flags, error)); // $ ir
162155

163-
sink(resolver.resolve(protocol, host_view, service_view)); // $ ir
164-
sink(resolver.resolve(protocol, host_view, service_view, error)); // $ ir
165-
sink(resolver.resolve(protocol, host_view, service_view, flags)); // $ ir
166-
sink(resolver.resolve(protocol, host_view, service_view, flags, error)); // $ ir
156+
sink(resolver.resolve(protocol, host_view, service_view)); // $ MISSING: ir
157+
sink(resolver.resolve(protocol, host_view, service_view, error)); // $ MISSING: ir
158+
sink(resolver.resolve(protocol, host_view, service_view, flags)); // $ MISSING: ir
159+
sink(resolver.resolve(protocol, host_view, service_view, flags, error)); // $ MISSING: ir
167160
}
168161

169162
void test_resolve_service() {
@@ -181,18 +174,18 @@ void test_resolve_service() {
181174
sink(resolver.resolve(host, service, flags)); // $ ir
182175
sink(resolver.resolve(host, service, flags, error)); // $ ir
183176

184-
sink(resolver.resolve(host_view, service_view)); // $ ir
185-
sink(resolver.resolve(host_view, service_view, error)); // $ ir
186-
sink(resolver.resolve(host_view, service_view, flags)); // $ ir
187-
sink(resolver.resolve(host_view, service_view, flags, error)); // $ ir
177+
sink(resolver.resolve(host_view, service_view)); // $ MISSING: ir
178+
sink(resolver.resolve(host_view, service_view, error)); // $ MISSING: ir
179+
sink(resolver.resolve(host_view, service_view, flags)); // $ MISSING: ir
180+
sink(resolver.resolve(host_view, service_view, flags, error)); // $ MISSING: ir
188181

189182
sink(resolver.resolve(protocol, host, service)); // $ ir
190183
sink(resolver.resolve(protocol, host, service, error)); // $ ir
191184
sink(resolver.resolve(protocol, host, service, flags)); // $ ir
192185
sink(resolver.resolve(protocol, host, service, flags, error)); // $ ir
193186

194-
sink(resolver.resolve(protocol, host_view, service_view)); // $ ir
195-
sink(resolver.resolve(protocol, host_view, service_view, error)); // $ ir
196-
sink(resolver.resolve(protocol, host_view, service_view, flags)); // $ ir
197-
sink(resolver.resolve(protocol, host_view, service_view, flags, error)); // $ ir
187+
sink(resolver.resolve(protocol, host_view, service_view)); // $ MISSING: ir
188+
sink(resolver.resolve(protocol, host_view, service_view, error)); // $ MISSING: ir
189+
sink(resolver.resolve(protocol, host_view, service_view, flags)); // $ MISSING: ir
190+
sink(resolver.resolve(protocol, host_view, service_view, flags, error)); // $ MISSING: ir
198191
}

‎cpp/ql/test/library-tests/dataflow/external-models/azure.cpp‎

Lines changed: 13 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,18 @@
1+
#include "../taint-tests/stl.h"
12
using uint16_t = unsigned short;
23
using int64_t = long long;
34
using size_t = unsigned long;
45
using uint8_t = unsigned char;
56
using int32_t = int;
67
using uint32_t = unsigned int;
78

8-
namespace std
9-
{
10-
class string
11-
{
12-
public:
13-
string();
14-
string(const char *);
15-
~string();
16-
};
17-
18-
template <typename K, typename V>
19-
class map
20-
{
21-
public:
22-
map();
23-
~map();
24-
25-
V& operator[](const K& key);
26-
};
27-
28-
template <typename T>
29-
class vector
30-
{
31-
public:
32-
vector();
33-
~vector();
34-
35-
T& operator[](size_t);
36-
};
37-
38-
template<typename T>
39-
class unique_ptr {
40-
public:
41-
unique_ptr();
42-
~unique_ptr();
43-
44-
T* get();
45-
};
46-
}
47-
489
namespace Azure
4910
{
5011
template <typename T>
5112
class Nullable
5213
{
14+
T m_value;
15+
5316
public:
5417
Nullable();
5518
Nullable(const T);
@@ -284,6 +247,9 @@ void test_RawResponse(Azure::Core::Http::RawResponse& resp) {
284247
}
285248

286249
void test_GetHeader() {
250+
// We instantiate the `std::pair` class since we need the `FieldContent` for
251+
// `std::pair::second` to be present in the test DB.
252+
std::pair<std::string, std::string>();
287253
Azure::Core::Http::Request request(Azure::Core::Http::Get, Azure::Core::Url("http://example.com"));
288254
{
289255
auto headerValue = request.GetHeader("Content-Type").Value();
@@ -294,4 +260,11 @@ void test_GetHeader() {
294260
std::string contentType = headers["Content-Type"];
295261
sink(contentType); // $ ir
296262
}
263+
}
264+
265+
void test_QueryParameters() {
266+
Azure::Core::Http::Request request(Azure::Core::Http::Get, Azure::Core::Url("http://example.com"));
267+
Azure::Core::Url url;
268+
url.SetQueryParameters(request.GetHeaders());
269+
sink(url.GetQueryParameters()["query"]); // $ ir
297270
}

‎cpp/ql/test/library-tests/dataflow/external-models/bslx.cpp‎

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,4 @@
1-
2-
// --- stub library headers ---
3-
4-
namespace std {
5-
typedef unsigned long size_t;
6-
template <class T> class allocator {};
7-
template<class charT> struct char_traits {};
8-
template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
9-
class basic_string {
10-
public:
11-
basic_string();
12-
basic_string(const charT* s, const Allocator& a = Allocator());
13-
const charT* data() const;
14-
size_t size() const;
15-
};
16-
typedef basic_string<char> string;
17-
}
1+
#include "../taint-tests/stl.h"
182

193
// BDE spells the standard string as `bsl::string`; alias it onto the stub above.
204
namespace bsl {

0 commit comments

Comments
 (0)