[model-gateway] reorganize integration tests into logical subdirectories (#16451)
This commit is contained in:
+6
-7
@@ -1,18 +1,17 @@
|
|||||||
mod common;
|
|
||||||
|
|
||||||
use axum::{
|
use axum::{
|
||||||
body::Body,
|
body::Body,
|
||||||
extract::Request,
|
extract::Request,
|
||||||
http::{header::CONTENT_TYPE, StatusCode},
|
http::{header::CONTENT_TYPE, StatusCode},
|
||||||
};
|
};
|
||||||
use common::{
|
|
||||||
mock_worker::{HealthStatus, MockWorker, MockWorkerConfig, WorkerType},
|
|
||||||
AppTestContext,
|
|
||||||
};
|
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use smg::{config::RouterConfig, routers::RouterFactory};
|
use smg::{config::RouterConfig, routers::RouterFactory};
|
||||||
use tower::ServiceExt;
|
use tower::ServiceExt;
|
||||||
|
|
||||||
|
use crate::common::{
|
||||||
|
mock_worker::{HealthStatus, MockWorker, MockWorkerConfig, WorkerType},
|
||||||
|
AppTestContext,
|
||||||
|
};
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod health_tests {
|
mod health_tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
@@ -1391,7 +1390,7 @@ mod pd_mode_tests {
|
|||||||
.build_unchecked();
|
.build_unchecked();
|
||||||
|
|
||||||
// Create app context
|
// Create app context
|
||||||
let app_context = common::create_test_context(config).await;
|
let app_context = crate::common::create_test_context(config).await;
|
||||||
|
|
||||||
// Create router - this might fail due to health check issues
|
// Create router - this might fail due to health check issues
|
||||||
let router_result = RouterFactory::create_router(&app_context).await;
|
let router_result = RouterFactory::create_router(&app_context).await;
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
//! API endpoint integration tests
|
||||||
|
|
||||||
|
mod api_endpoints_test;
|
||||||
|
mod parser_endpoints_test;
|
||||||
|
mod request_formats_test;
|
||||||
|
mod responses_api_test;
|
||||||
|
mod streaming_tests;
|
||||||
+4
-5
@@ -1,5 +1,3 @@
|
|||||||
mod common;
|
|
||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use axum::{
|
use axum::{
|
||||||
@@ -7,7 +5,6 @@ use axum::{
|
|||||||
extract::Request,
|
extract::Request,
|
||||||
http::{header::CONTENT_TYPE, StatusCode},
|
http::{header::CONTENT_TYPE, StatusCode},
|
||||||
};
|
};
|
||||||
use common::mock_worker::{MockWorker, MockWorkerConfig};
|
|
||||||
use reqwest::Client;
|
use reqwest::Client;
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use smg::{
|
use smg::{
|
||||||
@@ -17,6 +14,8 @@ use smg::{
|
|||||||
};
|
};
|
||||||
use tower::ServiceExt;
|
use tower::ServiceExt;
|
||||||
|
|
||||||
|
use crate::common::mock_worker::{MockWorker, MockWorkerConfig};
|
||||||
|
|
||||||
/// Test context that manages mock workers and app
|
/// Test context that manages mock workers and app
|
||||||
struct ParserTestContext {
|
struct ParserTestContext {
|
||||||
workers: Vec<MockWorker>,
|
workers: Vec<MockWorker>,
|
||||||
@@ -89,7 +88,7 @@ impl ParserTestContext {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
// Create app context with parser factories initialized
|
// Create app context with parser factories initialized
|
||||||
let app_context = common::create_test_context_with_parsers(config.clone()).await;
|
let app_context = crate::common::create_test_context_with_parsers(config.clone()).await;
|
||||||
|
|
||||||
// Create router
|
// Create router
|
||||||
let router = RouterFactory::create_router(&app_context).await.unwrap();
|
let router = RouterFactory::create_router(&app_context).await.unwrap();
|
||||||
@@ -105,7 +104,7 @@ impl ParserTestContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn create_app(&self) -> axum::Router {
|
async fn create_app(&self) -> axum::Router {
|
||||||
common::test_app::create_test_app_with_context(
|
crate::common::test_app::create_test_app_with_context(
|
||||||
Arc::clone(&self.router),
|
Arc::clone(&self.router),
|
||||||
Arc::clone(&self.app_context),
|
Arc::clone(&self.app_context),
|
||||||
)
|
)
|
||||||
+2
-3
@@ -1,10 +1,9 @@
|
|||||||
mod common;
|
use serde_json::json;
|
||||||
|
|
||||||
use common::{
|
use crate::common::{
|
||||||
mock_worker::{HealthStatus, MockWorkerConfig, WorkerType},
|
mock_worker::{HealthStatus, MockWorkerConfig, WorkerType},
|
||||||
WorkerTestContext,
|
WorkerTestContext,
|
||||||
};
|
};
|
||||||
use serde_json::json;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod request_format_tests {
|
mod request_format_tests {
|
||||||
+18
-17
@@ -1,23 +1,22 @@
|
|||||||
// Integration test for Responses API
|
// Integration test for Responses API
|
||||||
|
|
||||||
use axum::http::StatusCode;
|
use axum::http::StatusCode;
|
||||||
use smg::protocols::{
|
use smg::{
|
||||||
|
config::RouterConfig,
|
||||||
|
protocols::{
|
||||||
common::{GenerationRequest, ToolChoice, ToolChoiceValue, UsageInfo},
|
common::{GenerationRequest, ToolChoice, ToolChoiceValue, UsageInfo},
|
||||||
responses::{
|
responses::{
|
||||||
ReasoningEffort, ResponseInput, ResponseReasoningParam, ResponseTool, ResponseToolType,
|
ReasoningEffort, ResponseInput, ResponseReasoningParam, ResponseTool, ResponseToolType,
|
||||||
ResponsesRequest, ServiceTier, Truncation,
|
ResponsesRequest, ServiceTier, Truncation,
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
routers::{conversations, RouterFactory},
|
||||||
};
|
};
|
||||||
|
|
||||||
mod common;
|
use crate::common::{
|
||||||
use common::{
|
|
||||||
mock_mcp_server::MockMCPServer,
|
mock_mcp_server::MockMCPServer,
|
||||||
mock_worker::{HealthStatus, MockWorker, MockWorkerConfig, WorkerType},
|
mock_worker::{HealthStatus, MockWorker, MockWorkerConfig, WorkerType},
|
||||||
};
|
};
|
||||||
use smg::{
|
|
||||||
config::RouterConfig,
|
|
||||||
routers::{conversations, RouterFactory},
|
|
||||||
};
|
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_non_streaming_mcp_minimal_e2e_with_persistence() {
|
async fn test_non_streaming_mcp_minimal_e2e_with_persistence() {
|
||||||
@@ -60,7 +59,8 @@ async fn test_non_streaming_mcp_minimal_e2e_with_persistence() {
|
|||||||
|
|
||||||
// Create router and context with MCP config from file
|
// Create router and context with MCP config from file
|
||||||
let ctx =
|
let ctx =
|
||||||
common::create_test_context_with_mcp_config(router_cfg, cfg_path.to_str().unwrap()).await;
|
crate::common::create_test_context_with_mcp_config(router_cfg, cfg_path.to_str().unwrap())
|
||||||
|
.await;
|
||||||
let router = RouterFactory::create_router(&ctx).await.expect("router");
|
let router = RouterFactory::create_router(&ctx).await.expect("router");
|
||||||
|
|
||||||
// Build a simple ResponsesRequest that will trigger the tool call
|
// Build a simple ResponsesRequest that will trigger the tool call
|
||||||
@@ -236,7 +236,7 @@ async fn test_conversations_crud_basic() {
|
|||||||
.queue_timeout_secs(5)
|
.queue_timeout_secs(5)
|
||||||
.build_unchecked();
|
.build_unchecked();
|
||||||
|
|
||||||
let ctx = common::create_test_context(router_cfg).await;
|
let ctx = crate::common::create_test_context(router_cfg).await;
|
||||||
let _router = RouterFactory::create_router(&ctx).await.expect("router");
|
let _router = RouterFactory::create_router(&ctx).await.expect("router");
|
||||||
|
|
||||||
// Create
|
// Create
|
||||||
@@ -550,7 +550,7 @@ async fn test_multi_turn_loop_with_mcp() {
|
|||||||
.queue_timeout_secs(5)
|
.queue_timeout_secs(5)
|
||||||
.build_unchecked();
|
.build_unchecked();
|
||||||
|
|
||||||
let ctx = common::create_test_context(router_cfg).await;
|
let ctx = crate::common::create_test_context(router_cfg).await;
|
||||||
let router = RouterFactory::create_router(&ctx).await.expect("router");
|
let router = RouterFactory::create_router(&ctx).await.expect("router");
|
||||||
|
|
||||||
// Build request with MCP tools
|
// Build request with MCP tools
|
||||||
@@ -702,7 +702,7 @@ async fn test_max_tool_calls_limit() {
|
|||||||
.queue_timeout_secs(5)
|
.queue_timeout_secs(5)
|
||||||
.build_unchecked();
|
.build_unchecked();
|
||||||
|
|
||||||
let ctx = common::create_test_context(router_cfg).await;
|
let ctx = crate::common::create_test_context(router_cfg).await;
|
||||||
let router = RouterFactory::create_router(&ctx).await.expect("router");
|
let router = RouterFactory::create_router(&ctx).await.expect("router");
|
||||||
|
|
||||||
let req = ResponsesRequest {
|
let req = ResponsesRequest {
|
||||||
@@ -821,7 +821,8 @@ async fn setup_streaming_mcp_test() -> (
|
|||||||
.build_unchecked();
|
.build_unchecked();
|
||||||
|
|
||||||
let ctx =
|
let ctx =
|
||||||
common::create_test_context_with_mcp_config(router_cfg, cfg_path.to_str().unwrap()).await;
|
crate::common::create_test_context_with_mcp_config(router_cfg, cfg_path.to_str().unwrap())
|
||||||
|
.await;
|
||||||
let router = RouterFactory::create_router(&ctx).await.expect("router");
|
let router = RouterFactory::create_router(&ctx).await.expect("router");
|
||||||
|
|
||||||
(mcp, worker, router, dir)
|
(mcp, worker, router, dir)
|
||||||
@@ -1239,7 +1240,7 @@ async fn test_conversation_items_create_and_get() {
|
|||||||
.queue_timeout_secs(5)
|
.queue_timeout_secs(5)
|
||||||
.build_unchecked();
|
.build_unchecked();
|
||||||
|
|
||||||
let ctx = common::create_test_context(router_cfg).await;
|
let ctx = crate::common::create_test_context(router_cfg).await;
|
||||||
let _router = RouterFactory::create_router(&ctx).await.expect("router");
|
let _router = RouterFactory::create_router(&ctx).await.expect("router");
|
||||||
|
|
||||||
// Create conversation
|
// Create conversation
|
||||||
@@ -1325,7 +1326,7 @@ async fn test_conversation_items_delete() {
|
|||||||
.queue_timeout_secs(5)
|
.queue_timeout_secs(5)
|
||||||
.build_unchecked();
|
.build_unchecked();
|
||||||
|
|
||||||
let ctx = common::create_test_context(router_cfg).await;
|
let ctx = crate::common::create_test_context(router_cfg).await;
|
||||||
let _router = RouterFactory::create_router(&ctx).await.expect("router");
|
let _router = RouterFactory::create_router(&ctx).await.expect("router");
|
||||||
|
|
||||||
// Create conversation
|
// Create conversation
|
||||||
@@ -1433,7 +1434,7 @@ async fn test_conversation_items_max_limit() {
|
|||||||
.queue_timeout_secs(5)
|
.queue_timeout_secs(5)
|
||||||
.build_unchecked();
|
.build_unchecked();
|
||||||
|
|
||||||
let ctx = common::create_test_context(router_cfg).await;
|
let ctx = crate::common::create_test_context(router_cfg).await;
|
||||||
let _router = RouterFactory::create_router(&ctx).await.expect("router");
|
let _router = RouterFactory::create_router(&ctx).await.expect("router");
|
||||||
|
|
||||||
// Create conversation
|
// Create conversation
|
||||||
@@ -1490,7 +1491,7 @@ async fn test_conversation_items_unsupported_type() {
|
|||||||
.queue_timeout_secs(5)
|
.queue_timeout_secs(5)
|
||||||
.build_unchecked();
|
.build_unchecked();
|
||||||
|
|
||||||
let ctx = common::create_test_context(router_cfg).await;
|
let ctx = crate::common::create_test_context(router_cfg).await;
|
||||||
let _router = RouterFactory::create_router(&ctx).await.expect("router");
|
let _router = RouterFactory::create_router(&ctx).await.expect("router");
|
||||||
|
|
||||||
// Create conversation
|
// Create conversation
|
||||||
@@ -1546,7 +1547,7 @@ async fn test_conversation_items_multi_conversation_sharing() {
|
|||||||
.queue_timeout_secs(5)
|
.queue_timeout_secs(5)
|
||||||
.build_unchecked();
|
.build_unchecked();
|
||||||
|
|
||||||
let ctx = common::create_test_context(router_cfg).await;
|
let ctx = crate::common::create_test_context(router_cfg).await;
|
||||||
let _router = RouterFactory::create_router(&ctx).await.expect("router");
|
let _router = RouterFactory::create_router(&ctx).await.expect("router");
|
||||||
|
|
||||||
// Create two conversations
|
// Create two conversations
|
||||||
+3
-4
@@ -1,13 +1,12 @@
|
|||||||
mod common;
|
use serde_json::json;
|
||||||
|
|
||||||
use common::{
|
use crate::common::{
|
||||||
mock_worker::{HealthStatus, MockWorkerConfig, WorkerType},
|
mock_worker::{HealthStatus, MockWorkerConfig, WorkerType},
|
||||||
WorkerTestContext,
|
WorkerTestContext,
|
||||||
};
|
};
|
||||||
use serde_json::json;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod streaming_tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
//! API integration tests
|
||||||
|
|
||||||
|
#[path = "common/mod.rs"]
|
||||||
|
pub mod common;
|
||||||
|
|
||||||
|
mod api;
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
//! Multimodal and vision integration tests
|
||||||
|
|
||||||
|
mod multimodal_tracker_test;
|
||||||
|
mod vision_golden_tests;
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
//! Multimodal integration tests
|
||||||
|
|
||||||
|
#[path = "common/mod.rs"]
|
||||||
|
pub mod common;
|
||||||
|
|
||||||
|
mod multimodal;
|
||||||
+5
-6
@@ -2,21 +2,20 @@
|
|||||||
//!
|
//!
|
||||||
//! Tests for header propagation through the router to workers.
|
//! Tests for header propagation through the router to workers.
|
||||||
|
|
||||||
mod common;
|
|
||||||
|
|
||||||
use axum::{
|
use axum::{
|
||||||
body::Body,
|
body::Body,
|
||||||
extract::Request,
|
extract::Request,
|
||||||
http::{header::CONTENT_TYPE, StatusCode},
|
http::{header::CONTENT_TYPE, StatusCode},
|
||||||
};
|
};
|
||||||
use common::{
|
|
||||||
mock_worker::{HealthStatus, MockWorkerConfig, WorkerType},
|
|
||||||
AppTestContext,
|
|
||||||
};
|
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use smg::config::RouterConfig;
|
use smg::config::RouterConfig;
|
||||||
use tower::ServiceExt;
|
use tower::ServiceExt;
|
||||||
|
|
||||||
|
use crate::common::{
|
||||||
|
mock_worker::{HealthStatus, MockWorkerConfig, WorkerType},
|
||||||
|
AppTestContext,
|
||||||
|
};
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod header_forwarding_tests {
|
mod header_forwarding_tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
@@ -1,9 +1,14 @@
|
|||||||
//! Routing integration tests
|
//! Routing integration tests
|
||||||
|
|
||||||
pub mod cache_aware_backward_compat_test;
|
pub mod cache_aware_backward_compat_test;
|
||||||
|
pub mod header_forwarding_test;
|
||||||
pub mod load_balancing_test;
|
pub mod load_balancing_test;
|
||||||
pub mod manual_routing_test;
|
pub mod manual_routing_test;
|
||||||
|
pub mod payload_size_test;
|
||||||
pub mod pd_routing_test;
|
pub mod pd_routing_test;
|
||||||
|
pub mod policy_registry_integration;
|
||||||
pub mod power_of_two_test;
|
pub mod power_of_two_test;
|
||||||
|
pub mod service_discovery_test;
|
||||||
pub mod test_openai_routing;
|
pub mod test_openai_routing;
|
||||||
pub mod test_pd_routing;
|
pub mod test_pd_routing;
|
||||||
|
pub mod worker_management_test;
|
||||||
|
|||||||
+5
-6
@@ -2,21 +2,20 @@
|
|||||||
//!
|
//!
|
||||||
//! Tests for request payload size limits and handling.
|
//! Tests for request payload size limits and handling.
|
||||||
|
|
||||||
mod common;
|
|
||||||
|
|
||||||
use axum::{
|
use axum::{
|
||||||
body::Body,
|
body::Body,
|
||||||
extract::Request,
|
extract::Request,
|
||||||
http::{header::CONTENT_TYPE, StatusCode},
|
http::{header::CONTENT_TYPE, StatusCode},
|
||||||
};
|
};
|
||||||
use common::{
|
|
||||||
mock_worker::{HealthStatus, MockWorkerConfig, WorkerType},
|
|
||||||
AppTestContext,
|
|
||||||
};
|
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use smg::config::RouterConfig;
|
use smg::config::RouterConfig;
|
||||||
use tower::ServiceExt;
|
use tower::ServiceExt;
|
||||||
|
|
||||||
|
use crate::common::{
|
||||||
|
mock_worker::{HealthStatus, MockWorkerConfig, WorkerType},
|
||||||
|
AppTestContext,
|
||||||
|
};
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod payload_size_tests {
|
mod payload_size_tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
+5
-6
@@ -2,21 +2,20 @@
|
|||||||
//!
|
//!
|
||||||
//! Tests for service discovery shim functionality for dynamic worker registration.
|
//! Tests for service discovery shim functionality for dynamic worker registration.
|
||||||
|
|
||||||
mod common;
|
|
||||||
|
|
||||||
use axum::{
|
use axum::{
|
||||||
body::Body,
|
body::Body,
|
||||||
extract::Request,
|
extract::Request,
|
||||||
http::{header::CONTENT_TYPE, StatusCode},
|
http::{header::CONTENT_TYPE, StatusCode},
|
||||||
};
|
};
|
||||||
use common::{
|
|
||||||
mock_worker::{HealthStatus, MockWorkerConfig, WorkerType},
|
|
||||||
AppTestContext,
|
|
||||||
};
|
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use smg::config::RouterConfig;
|
use smg::config::RouterConfig;
|
||||||
use tower::ServiceExt;
|
use tower::ServiceExt;
|
||||||
|
|
||||||
|
use crate::common::{
|
||||||
|
mock_worker::{HealthStatus, MockWorkerConfig, WorkerType},
|
||||||
|
AppTestContext,
|
||||||
|
};
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod service_discovery_tests {
|
mod service_discovery_tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
+2
-3
@@ -6,17 +6,16 @@
|
|||||||
//! - GET /workers - list workers
|
//! - GET /workers - list workers
|
||||||
//! - DELETE /workers/{worker_id} - remove a worker
|
//! - DELETE /workers/{worker_id} - remove a worker
|
||||||
|
|
||||||
mod common;
|
|
||||||
|
|
||||||
use axum::{
|
use axum::{
|
||||||
body::Body,
|
body::Body,
|
||||||
extract::Request,
|
extract::Request,
|
||||||
http::{header::CONTENT_TYPE, StatusCode},
|
http::{header::CONTENT_TYPE, StatusCode},
|
||||||
};
|
};
|
||||||
use common::{AppTestContext, TestRouterConfig, TestWorkerConfig};
|
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use tower::ServiceExt;
|
use tower::ServiceExt;
|
||||||
|
|
||||||
|
use crate::common::{AppTestContext, TestRouterConfig, TestWorkerConfig};
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod worker_management_tests {
|
mod worker_management_tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
//! Tokenizer and chat template integration tests
|
||||||
|
|
||||||
|
mod chat_template_format_detection;
|
||||||
|
mod chat_template_integration;
|
||||||
|
mod chat_template_loading;
|
||||||
|
mod tokenizer_cache_correctness_test;
|
||||||
|
mod tokenizer_integration;
|
||||||
+2
-2
@@ -3,15 +3,15 @@
|
|||||||
//! These tests download the TinyLlama tokenizer from HuggingFace to verify our tokenizer
|
//! These tests download the TinyLlama tokenizer from HuggingFace to verify our tokenizer
|
||||||
//! implementation works correctly with real-world tokenizer files.
|
//! implementation works correctly with real-world tokenizer files.
|
||||||
|
|
||||||
mod common;
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use common::{ensure_tokenizer_cached, EXPECTED_HASHES, TEST_PROMPTS};
|
|
||||||
use smg::tokenizer::{
|
use smg::tokenizer::{
|
||||||
factory, huggingface::HuggingFaceTokenizer, sequence::Sequence, stop::*, stream::DecodeStream,
|
factory, huggingface::HuggingFaceTokenizer, sequence::Sequence, stop::*, stream::DecodeStream,
|
||||||
traits::*,
|
traits::*,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
use crate::common::{ensure_tokenizer_cached, EXPECTED_HASHES, TEST_PROMPTS};
|
||||||
|
|
||||||
const LONG_TEST_PROMPTS: [(&str, &str); 6] = [
|
const LONG_TEST_PROMPTS: [(&str, &str); 6] = [
|
||||||
("Tell me about the following text.", "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."),
|
("Tell me about the following text.", "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."),
|
||||||
("Tell me about the following text.", "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."),
|
("Tell me about the following text.", "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."),
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
//! Tokenizer integration tests
|
||||||
|
|
||||||
|
#[path = "common/mod.rs"]
|
||||||
|
pub mod common;
|
||||||
|
|
||||||
|
mod tokenizer;
|
||||||
Reference in New Issue
Block a user