mirror of
https://github.com/vlang/v.git
synced 2025-09-13 14:32:26 +03:00
Compare commits
3 commits
3080b41687
...
6e0fd17a72
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6e0fd17a72 | ||
![]() |
7cba3a249b | ||
![]() |
fb95f4cc6f |
4 changed files with 56 additions and 2 deletions
|
@ -1,4 +1,4 @@
|
||||||
// vtest build: !windows
|
// vtest build: linux
|
||||||
// vtest retry: 2
|
// vtest retry: 2
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// vtest retry: 2
|
||||||
import os
|
import os
|
||||||
import benchmark
|
import benchmark
|
||||||
import term
|
import term
|
||||||
|
|
|
@ -4479,7 +4479,7 @@ fn (mut g Gen) selector_expr(node ast.SelectorExpr) {
|
||||||
}
|
}
|
||||||
// struct embedding
|
// struct embedding
|
||||||
mut has_embed := false
|
mut has_embed := false
|
||||||
if sym.info in [ast.Struct, ast.Aggregate] {
|
if sym.info in [ast.Alias, ast.Struct, ast.Aggregate] {
|
||||||
if node.generic_from_embed_types.len > 0 && sym.info is ast.Struct {
|
if node.generic_from_embed_types.len > 0 && sym.info is ast.Struct {
|
||||||
if sym.info.embeds.len > 0 {
|
if sym.info.embeds.len > 0 {
|
||||||
mut is_find := false
|
mut is_find := false
|
||||||
|
|
53
vlib/veb/tests/veb_aliased_app_and_context_test.v
Normal file
53
vlib/veb/tests/veb_aliased_app_and_context_test.v
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
import os
|
||||||
|
import veb
|
||||||
|
import time
|
||||||
|
import net.http
|
||||||
|
|
||||||
|
const app_port = 29123
|
||||||
|
const exit_after = 10 * time.second
|
||||||
|
|
||||||
|
pub struct Context {
|
||||||
|
veb.Context
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct App {
|
||||||
|
veb.Middleware[Context]
|
||||||
|
veb.Controller
|
||||||
|
veb.StaticHandler
|
||||||
|
started chan bool
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn (mut app App) before_accept_loop() {
|
||||||
|
app.started <- true
|
||||||
|
}
|
||||||
|
|
||||||
|
type AliasApp = App
|
||||||
|
type AliasContext = Context
|
||||||
|
|
||||||
|
fn testsuite_begin() {
|
||||||
|
os.chdir(os.dir(@FILE))!
|
||||||
|
spawn fn () {
|
||||||
|
time.sleep(exit_after)
|
||||||
|
assert true == false, 'timeout reached!'
|
||||||
|
exit(1)
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_aliased_app_compiles_and_starts() {
|
||||||
|
mut app := &AliasApp{}
|
||||||
|
spawn veb.run_at[AliasApp, AliasContext](mut app,
|
||||||
|
port: app_port
|
||||||
|
timeout_in_seconds: 2
|
||||||
|
family: .ip
|
||||||
|
)
|
||||||
|
eprintln('waiting for app to start ...')
|
||||||
|
_ := <-app.started
|
||||||
|
eprintln('>>> app was started')
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_static_root() {
|
||||||
|
x := http.get('http://127.0.0.1:${app_port}/')!
|
||||||
|
eprintln('>>>> http request was sent and received')
|
||||||
|
assert x.status() == .not_found
|
||||||
|
assert x.body == '404 Not Found'
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue