国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

深入Go代碼覆蓋率使用、場景與原理

共 3537字,需瀏覽 8分鐘

 ·

2022-05-11 01:59

一般我們會使用代碼覆蓋率來判斷代碼書寫的質(zhì)量,識別無效代碼。

識別靜態(tài)靜態(tài)的代碼

對于靜態(tài)的代碼,要識別代碼沒有被使用,可以使用golangci-lint工具

golangci-lint  run --disable-all  --enable unused

對于通過單元測試 測試函數(shù)代碼的覆蓋率,在go生態(tài)中,go1.2提供了cover工具。

cover 基本用法

首先來看看go test -cover 統(tǒng)計代碼覆蓋率做的事情,借鑒一下它的思路。go test -cover 能夠統(tǒng)計出代碼的覆蓋率,這是一種比統(tǒng)計函數(shù)是否被調(diào)用更強悍的手法。

% go test -cover
PASS
coverage: 42.9% of statements
ok size 0.026s
%

另外,還可以收集覆蓋率進行,并進行可視化的展示。

go test -coverprofile=coverage.out

如下,使用 go tool cover 可視化分析代碼覆蓋率信息。

$ go tool cover -html=coverage.out

能夠識別和統(tǒng)計出未調(diào)用過的分支。

測試環(huán)境下代碼覆蓋率

go test -cover 本身是運行xxx_test.go文件的測試函數(shù)使用的,但是我們可以使用一些奇淫技巧將這種方式用于測試環(huán)境下的代碼覆蓋率測試。假設(shè)我們的代碼是一個web服務(wù)器,我們可以新建一個main_test.go文件,執(zhí)行main()函數(shù),就好像在執(zhí)行程序一樣。并在退出程序后,正常完成coverprofile文件的生成。這種好處是可以在測試環(huán)境調(diào)用http請求,并最終統(tǒng)計代碼覆蓋率。如下為一段main_test.go代碼示例


func TestSystem(t *testing.T) {
handleSignals()

endRunning = make(chan bool, 1)

go func() {

main()

}()

<-endRunning
}

線上代碼覆蓋率的思路

假設(shè)我們的需求是想看線上的代碼哪一些函數(shù)沒有被調(diào)用?

運行中的程序要檢測某一個函數(shù)是否被調(diào)用似乎沒有什么好的辦法,原因是沒有好的手段能夠檢測并記錄當(dāng)前函數(shù)已經(jīng)被調(diào)用了。

可以將線上的代碼覆蓋率分為傾入性和非傾入性兩種方式。

傾入性方案一種最直接的方式是為代碼打樁,在每一個函數(shù)開頭埋點記錄下調(diào)用信息。我們可以參考下go test -cover

的實現(xiàn)方案。

cover代碼覆蓋率的原理

go test -cover 會對代碼進行打樁。

package size

func Size(a int) string {
switch {
case a < 0:
return "negative"
case a == 0:
return "zero"
case a < 10:
return "small"
case a < 100:
return "big"
case a < 1000:
return "huge"
}
return "enormous"
}

如上代碼可以通過下面的命令生成打樁后的結(jié)果

go tool cover -mode=set  -var=size  xxx.go

打樁后的結(jié)果如下:

//line xxx.go:1
package tt

func Size(a int) string {size.Count[0] = 1;
switch {
case a < 0:size.Count[2] = 1;
return "negative"
case a == 0:size.Count[3] = 1;
return "zero"
case a < 10:size.Count[4] = 1;
return "small"
case a < 100:size.Count[5] = 1;
return "big"
case a < 1000:size.Count[6] = 1;
return "huge"
}
size.Count[1] = 1;return "enormous"
}

var size = struct {
Count [7]uint32
Pos [3 * 7]uint32
NumStmt [7]uint16
} {
Pos: [3 * 7]uint32{
3, 4, 0x90019, // [0]
16, 16, 0x130002, // [1]
5, 6, 0x14000d, // [2]
7, 8, 0x10000e, // [3]
9, 10, 0x11000e, // [4]
11, 12, 0xf000f, // [5]
13, 14, 0x100010, // [6]
},
NumStmt: [7]uint16{
1, // 0
1, // 1
1, // 2
1, // 3
1, // 4
1, // 5
1, // 6
},
}

而要實現(xiàn)go test -coverprofile=coverage.out打樁略微復(fù)雜一些,改命令會生成一個_testmain.go的中間文件,將文件名信息以及花括號的信息記錄并注冊,并最終生成coverprofile協(xié)議文件。具體的執(zhí)行過程可以通過如下命令查看。

go test -n -x  -test.coverprofile=coverage.out

coverprofile文件的協(xié)議遵循如下格式:

第一行為"mode: foo", foo is "set", "count", or "atomic".
中間為記錄的位置:name.go:line.column,line.column numberOfStatements count
// 例如:encoding/base64/base64.go:34.44,37.40 3 1

具體協(xié)議可以參考:go1.16.14/src/cmd/cover/profile.go:44

coverprofile文件協(xié)議需要的信息可以通過go test -cover自動生成的代碼進行整理。在這個地方,可以參考開源項目https://github.com/qiniu/goc 的實現(xiàn)邏輯,goc 本身就是對go test -cover 命令的封裝。

借助如下命令得到的在臨時目錄生成的文件,可以查看到如何將go test -cover對應(yīng)的結(jié)構(gòu)轉(zhuǎn)換為coverprofile 文件的協(xié)議。

goc build --debug

cover 打樁原理:AST語法樹打樁

go test -cover 打樁的原理是借助AST語法樹遍歷整個文件,在識別到花括號、swith、select等地方,插入一行。

// go1.16.14/src/cmd/cover/cover.go:202
func (f *File) Visit(node ast.Node) ast.Visitor {
switch n := node.(type) {
case *ast.BlockStmt:
// If it's a switch or select, the body is a list of case clauses; don't tag the block itself.
if len(n.List) > 0 {
switch n.List[0].(type) {
case *ast.CaseClause: // switch
for _, n := range n.List {
clause := n.(*ast.CaseClause)
f.addCounters(clause.Colon+1, clause.Colon+1, clause.End(), clause.Body, false)
}
return f
case *ast.CommClause: // select
for _, n := range n.List {
clause := n.(*ast.CommClause)
f.addCounters(clause.Colon+1, clause.Colon+1, clause.End(), clause.Body, false)
}
return f
}
}
f.addCounters(n.Lbrace, n.Lbrace+1, n.Rbrace+1, n.List, true) // +1 to step past closing brace.
...

借助于操作AST語法樹這種思路,我們也可以做相應(yīng)改造,完成在代碼特定位置插入一行用于統(tǒng)計,等其他功能。

如果只是統(tǒng)計函數(shù)是否被調(diào)用,那么可以借助AST語法樹,在識別到函數(shù)的下一行,插入一行統(tǒng)一的函數(shù)調(diào)用,全局Record函數(shù)可以是一個map,用于全局函數(shù)的統(tǒng)計。參考資料中給出了操作AST的2篇文章。

func A(){
Record("A")
...
}

腳本

如果我們只是想實現(xiàn)簡單的功能,例如在函數(shù)下方插入一行,也許我們可以用時間成本最小的方式來處理。如下的sed命令,直接在文件中函數(shù)下方插入一行,這種方式最快。

sed -i 's/.*\(func \([a-z].*\)()\).*/\1\n Record \2/g' xxx.go

其適用于大部分函數(shù)場景:但是上面的這種方法不適用于有換行的函數(shù),如下統(tǒng)計個數(shù)。

find . -type f -name '*.go' -not -path "./vendor/*" | xargs ggrep -oP "func \w*\(.*?,$" | wc -l

非傾入性方案-pprof

上面的方式比較直接,但是代碼有侵入性容易出錯。不想有傾入性可以借助于中斷信號處理的方式。

Go pprof CPU 分析器使用 定時發(fā)送SIGPROF 信號中斷代碼執(zhí)行。當(dāng)調(diào)用 pprof.StartCPUProfile 函數(shù)時,SIGPROF 信號處理程序?qū)⒈蛔詾槟J每 10 毫秒間隔調(diào)用一次(100 Hz)。在 Unix 上,它使用 setitimer(2) 系統(tǒng)調(diào)用來設(shè)置信號計時器。當(dāng)內(nèi)核態(tài)返回到用戶態(tài)調(diào)用注冊好的sighandler 函數(shù),sighandler 函數(shù)識別到信號為_SIGPROF 時,執(zhí)行sigprof 函數(shù)記錄該CPU樣本,并以此機會獲取當(dāng)前代碼的棧幀數(shù)據(jù)。

這些堆棧信息可以合并為profile文件并最終被pprof程序分析處理。

這種方式記錄了每一個堆棧樣本

并且通過合并統(tǒng)計,借助概率的方式,能夠知道程序大部分時間在哪個函數(shù)運行。

但是如果要統(tǒng)計哪一個函數(shù)沒有被調(diào)用卻比較困難,原因是如果某一個A函數(shù)執(zhí)行的時間很短,ns級別的,那么當(dāng)觸發(fā)定時任務(wù)時,有多大的概率能夠在該A函數(shù)停留?這種不確定性增加了識別不可用函數(shù)或者代碼的難度。

由于頻繁的中斷,pprof 不能一直打開,一般是抽樣60ms以下的數(shù)據(jù)。一種思路是定時抽樣并合并profile數(shù)據(jù)。

curl -o cpu.out  http://localhost:9981/debug/pprof/profile?seconds=30 
go tool pprof -http=localhost:8000 cpu.out

總結(jié)

代碼覆蓋率是判斷代碼書寫的質(zhì)量,識別無效代碼的重要工具。在go生態(tài)中,go1.2提供了測試代碼覆蓋率的cover工具。

  • 靜態(tài)代碼

對于靜態(tài)的代碼,要識別代碼沒有被使用,可以使用golangci-lint工具

golangci-lint  run --disable-all  --enable unused
  • 對于線下的單元測試

可以使用go test -cover工具

  • 測試環(huán)境下的代碼

對于測試環(huán)境下有請求或長時間運行程序的單元覆蓋率,可以借助cover工具使用文中巧妙的方式來測試。如果測試環(huán)境不充分完備,沒有辦法測試出來。線上統(tǒng)計函數(shù)是否被調(diào)用有兩種方式傾入性和非傾入性。

  • 對于線上傾入性的方式

主要是在關(guān)鍵位置注入一行函數(shù)進行統(tǒng)計??梢允呛瘮?shù)級別的,甚至可以借助go test -cover 在每一個邏輯分支注入了函數(shù)。

如果只是考慮函數(shù)級別的,可以考慮直接shel腳本注入函數(shù),這樣做時間成本最低。也可以考慮借助AST抽象語法樹的方式,成本略高。

如果是邏輯分支級別的,可以考慮借鑒開源庫https://github.com/qiniu/goc 的手法來生成打樁后的go文件。它是對go test -cover 代碼的封裝,借助AST抽象語法樹,在特定位置插入一行。

  • 對于線上非傾入性的方式

通過pprof,信號中斷處理的手法,抽樣獲取堆棧信息。一些處理時間很短的函數(shù),將很難被檢測到。這種方式對于檢測到經(jīng)常使用的函數(shù)有用,但是不適合推斷沒有使用過的函數(shù)。

參考資料

官方文檔:https://go.dev/blog/cover

合并profile:https://github.com/rakyll/pprof-merge

七牛云goc:https://github.com/qiniu/goc

利用 go/ast 語法樹做代碼生成: https://segmentfault.com/a/1190000039215176

Golang AST語法樹使用教程及示例:https://juejin.cn/post/6844903982683389960

hook思路:https://github.com/brahma-adshonor/gohook



推薦閱讀


福利

我為大家整理了一份從入門到進階的Go學(xué)習(xí)資料禮包,包含學(xué)習(xí)建議:入門看什么,進階看什么。關(guān)注公眾號 「polarisxu」,回復(fù)?ebook?獲??;還可以回復(fù)「進群」,和數(shù)萬 Gopher 交流學(xué)習(xí)。

瀏覽 408
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 成人亚洲在线| 欧美日韩中国操逼打炮| 日韩AV无码电影| 久久精品一区二区三区蜜芽的特点 | 91精品无码| 精东影业秘国产传媒| 人人澡人人爽| 欧美性高潮| 日本午夜无码| 亚洲成人影音先锋| 婷婷丁香五月花| 日韩ava| 久久精品一区二区| 日韩福利在线观看| 成人做爰黄AAA片免费直播岛国 | 无码电影网站| 91色噜噜狠狠色婷婷| 国产无套免费网站69| 亚洲人妻影院| 91国在线| 欧一美一婬一伦一区?| 中文字幕69| 老司机AV91| 高清无码免费在线观看| 插吧插吧网| 99久久久久久| AV不卡在线| 日韩黄片免费看| 中文字幕成人无码| 国产人妻精品一二三区| 精品视频999| 欧美MV日韩MV国产网站| 青娱乐成人在线视频| 中文无码熟妇一区二区| 久久亚洲福利视频| 黄色视频免费看| 99热这里只有精品9| 亚洲日本欧美| 欧美久久网| 五月天婷婷基地| 能看的av| 国产精品成人免费久久黄AV片 | 秘亚洲国产精品成人网站| 日本黄色a片| jzzijzzij亚洲成熟少妇在线观看 九色蝌蚪9l视频蝌蚪9l视频成人熟妇 | 大香蕉精品| 人人射人人| 91aaa在线观看| 日本亚洲黄色视频| 91免费在线看| 在线中文字幕AV| 先锋资源在线视频| 中文字幕操逼| 在线免费观看无码视频| 理论片无码| 好吊顶亚洲AV大香蕉色色| 日韩免费成人视频| 鲁一鲁在线视频| 动漫3D成人H无码国漫| 亚洲精品久久久久久久蜜桃| 在线A片免费观看| 麻豆性交| 女女女女女女BBBBBB手| 五月丁香婷婷久久| 成人网站视频| 2024av在线| 最新中文字幕无码| 日日爱网| 69成人国产| 日韩一区二区在线看在线看 | 精品人妻一区二区三区阅读全文| 俺也来www俺也色com| 日本中文无码视频| 九色蝌蚪视频| 五月停亭六月,六月停亭的英语| 仓井空一区| 日韩精品A片| 黄色视频日本免费| 少妇探花| 国产精品无码中文在线| 亚洲日韩欧美成人| 欧美久久免费| 国产欧美在线视频| 蜜臀av在线观看| 日韩黄片免费看| 欧美日韩东京热| 国产成人a亚洲精品无码| 8x8x黄色| 免费视频91蜜桃| 国产高清免费| 韩国精品无码一区二区三区18 | 国产欧美一区二区三区国产幕精品 | 成人AV在线电影| 午夜精品18视频国产17c| 自拍偷拍免费| 青草青青视频| 有免费的欧美操逼视频吗| 亚洲日韩在线a成| 九色蝌蚪9l视频蝌蚪9l视频成人熟妇| 国产69AV| 91久九九| 黄色一级片免费观看| 日本成人黄色电影| 国产办公室丝袜人妖| 先锋成人AV| 黑巨茎大战欧美白妞小说| 超碰A片| 亚洲三级久久| 欧美午夜成人| 99精品免费视频| 男人天堂影院| 美女一级变态毛片| 国产特黄| 国产成人综合亚洲| 无码在线播放视频| 伊人大香蕉视频在线观看| 一级少女免费播放电视剧韩剧TV| 亚洲成人二区| 五月天国产| 97精品国产97久久久久久免费| 超碰在线国产| 久色网站| 97精品国产| 日韩成人在线观看| 成人婷婷五月| 麻豆传媒一区| 成年人视频网| 91丨九色丨蝌蚪丨丝袜| 亚洲色综合久久五月| 日韩爱爱网| 亚洲无码A片在线观看| 成人黄色毛片| 日本大胆中出| 亚洲AV无码成人精品区东京热| 水果派解说AV无码一区| 国产AV剧情| 精品国产久久久久久| 黑人猛躁白人BBBBBBBBB| 在线亚洲免费| 五月天久久久| 成人在线免费观看视频| 黑人vs亚洲人在线播放| 国产AV一卡| 无码人妻久久一区二区三区蜜桃| 国产又爽又黄免费| 中文一区| 国产在线导航| 免费看成人747474九号视频在线观看| 北条麻妃在线观看香蕉| 欧美特黄AAA| 国产女人与禽zOz0性| 国产九九热视频| 搡女人视频国产一级午夜片| 狠狠穞A片一區二區三區| 欧美成人精品AAA| 色哥网在线一区| 亚洲视频综合网| 无码av高清| 亚洲性无码| 欧美成人内射| 婷婷狠狠| 中文字幕日韩精品人妻| 欧美在线观看视频一区| 香蕉视频成人在线观看| 精品一区电影| 国产成人无码区免费AV片在线| 99热亚洲| 四虎影院人妻| 国产一二三四| 黑人巨大翔田千里AⅤ| 黄页网址在线观看| 免费毛片+一区二区三区| 69av在线观看| 麻豆毛片| 国产香蕉视频在线播放| 日韩在线视频中文字幕码无| 婷婷免费视频| 精品福利导航| 成人在线视频一区| 日韩成人av在线| AV无码在线免费观看| 日韩精品网| 亚洲无码高清在线| 加勒比无码综合| 亚洲欧洲精品视频| 黄色小视频在线免费看| 色男人色天堂| 青青操成人| 国产婬片lA片www777| BBB搡BBB搡BBB搡BBB| AV色站| 日韩无码久久久| 国产欧美视频在线| 全国男人的天堂网站| 91蜜桃在线观看| 青春草在线观看视频| 91丨人妻丨国产丨丝袜| 国产美女久久久| 国产又黄又| Chinese搡老女人| 午夜看黄| 五月天久久久久久| 欧美麻豆| 日本久久综合| 无码国产精品一区二区免费式直播| 欧美激情一区二区| 91久久久裸身美女| 午夜天堂在线| 中文最新天堂8√| 一级A片在线观看| 久草资源视频| 狠狠色噜噜狠狠狠888米奇视频| 国产AV大片| 99人妻视频| 日韩精品成人AV| 伊人大香蕉视频在线观看| 亚洲AV无码精品成人| 成人日韩| 国产三级黄色片| AV乱伦网站| 日韩性爱视频在线观看| 欧美日韩三级| 大香蕉九九| 日本欧美在线视频| 亚洲免费性爱视频| www99国产| 在桌下含她的花蒂和舌头H视频| 欧美一区二区在线视频| 肏逼网站| 欧美激情亚洲无码| 亚洲免费观看高清完整版| 中文字幕日韩在线观看| 国产精品伦理| 丁香五月天天| 国产性爱网址| 淫荡五月天视频导航| 天天爽夜夜爽夜夜爽| 亚洲成人Av| 久久精品6| 欧美在线日韩在线| 男女操逼视频网站| 69黄色视频| 国产美女网站| 暖暖高清无码| www.911国产| 福利黄色片:片| 成人伊人电影| 亚洲天堂2015| 91re| 中国婬乱a| 亚洲综合免费观看高清| 三级理论片| 九一亚洲精品| 玖玖色综合| 天天插天天| 亚洲AV无码成人专区| 91久久综合亚洲鲁鲁五月天| 三级国产网站| 国产精品高| 婷婷五月天综合网| 呦呦av| 亚洲性爱在线视频| 成人在线免费视频观看| 久久婷婷青青| 精品国产久| 久久密| 亚洲国产色婷婷| 激情综合婷婷久久| 亚洲性爱在线| 日韩视频二区| 香蕉操逼视频| 欧美特级黄片| AA丁香综合激情| 3D动漫精品啪啪一区二区免费| 黄色片在线视频| 中文字幕在线免费播放| 乱伦五月天| 中国AV网| 欧美日韩性爱| 成人午夜A片免费看| 一级a免一级a做免费线看内祥 | 一级a爱视频| 激情无码一区二区| 成人性生活视频| 香蕉视频啪啪啪| 囯产精品久久久久久久久| 亚洲都市激情| 草草影院国产第一页| 大鸡巴在线视频| 波多一区| 北京熟妇槡BBBB槡BBBB| 国产女人精品视频| 中文字幕在线电影| 色77777| 国产秘精品区二区三区日本| 久久男人天堂| 国产精品系列视频| 亚洲无套内射| AV日逼网| 久久免费视频,久久免费视频| 天堂在线| 一区二区三区四区成人| 中国老熟女重囗味HDXX| 老司机午夜电影| 热的无码| 99成人乱码一区二区三区在线| 五月婷婷网| 人人操人人操人人| 麻豆91蜜桃传媒在线观看| AV资源站| 亚洲狼人久久久精品| 欧美成人激情视频| 黄色免费在线观看网站| 人人操比| 男人AV网| 偷拍视频第一页| 91无码精品久久久一区第1集| 偷拍无码| 大地影院在线资源观看| 一区二区免费在线观看| 无码福利电影| 国产高清无码网站| 久久这里都是精品| 操逼网视频| 色婷婷在线观看视频| 91视频成人版一区二区| 911国产精品| 黄色无無| 亚洲少妇无码| 成人小说视频在线社区| 九九综合网| 久久香蕉网| 亚洲日韩欧美一厂二区入| 久久久精品人妻| 日本在线网站| 激情欧美| 天堂在线中文网| 香蕉久久久| 日日久视频| 五月天婷婷在线观看| 99色国产| 另类图片亚洲色图| 偷拍视频图片综合网| 中文字幕第一区| 五月婷婷五月丁香| 91丨九色丨东北熟女| 日本黄色电影在线播放| 成人无码区免费AV片| 草久在线| 东京热男人的天堂| 五月婷婷综合激情| 国产视频中文字幕| 欧美成人电影在线观看| 日韩天天干| 大鸡巴草逼| 婷婷视频| 日本久热| 大橡胶伊人网| 五月天综合| 蜜桃网站视频| 熟妇人妻中文AV无码| 精品交换一区二区三区无码| 欧美一级网| 97精品人妻一区二区三区香蕉农| 久久久久久亚洲AV无码专区| 亚洲婷婷在线观看| 欧美激情一区二区三区| 青青青亚州视频在线| 精品人妻一区二区三区含羞草| 99re国产视频| 天天爱天天操| 欧美操BB| 免费欧美三级片| 欧美一道本| 国产成人久久777777| 色诱av| 国产一级a毛一级a毛观看视频网站www.jn | 欧洲美一区二区三区亚洲| 国产中文字幕AV在线播放| 日本老熟妇| 国产激情电影| 久久综合久久鬼| av手机天堂网| 丰滿老婦BBwBBwBBw| 色婷婷久综合久久一本国产AV| 欧美日日| 91视频在线免费看| 国产乱伦影片| 亚洲无码A片在线观看| 日本黄A三级三级三级| 97超碰碰| 国产理论片在线观看| 国产免费一区二区三区四区| 亚洲精品国产成人综合久久久久久久久| 日本人妻在线播放| 91做爱视频| 一级黄色片网站| 成人网站在线| 天天日天天拍| 亚洲免费视频在线看| 97人妻人人澡| 草逼动态图| 天天色色婷婷| 中文在线高清字幕| 日韩欧美大香蕉| 人人看人人摸人人| 婷婷五月天成人| 激情日逼| 大香蕉伊人在线观看视频| 成人欧美一区二区三区在线观看| 国产免费无码| 日韩人妻码一区二区三区| 五月婷婷性爱| 99热免费在线观看| 精品人妻一区二区免费蜜桃| 久久精彩偷拍视频| 欧美黄片免费在线观看| 高清无码网站在线观看| 国产精品无码在线观看| 伊人精品A片一区二区三区| 亚洲a级毛片| 日韩在线视频网站| 9l视频自拍九色9l视频成人| 日本久久人体视频| 亚洲成人综合在线| 亚洲娱乐在线| S28AV| 91探花视频在线观看| 曰韩精品| 人妻无码| 人人上人人干| 亚洲高清无码视频大全| 人操人人| 国产一级A片免费视频| 男女一区二区三区| 国产精品资源| 麻豆亚洲AV成人无码久久精品| 欧美日韩中文视频| 国产精品一二| 97在线视频免费观看| 中文字幕精品三区无码| 69久蜜桃人妻无码精品一区| 九九精品视频在线播放| 简单av网| 日韩免费在线视频| 亚洲欧美日韩一区| 国产在线观看你懂的| 午夜一级性爱片| 插菊花综合网3| 一级黄色A片视频| 搡BBBB搡BBB搡五十粉嫩| 久草美女| 日本中文字幕中文翻译歌词| 91麻豆精品在线| 国产精品一二三区夜夜躁| 五月天婷婷丁香网| 日本色五月| 爱搞逼综合网| 九九精品在线观看| 91无码人妻精品一区二区三区四| 上海熟搡BBB搡BBBB| 久久艹国产| 亚洲AV无码成人精品区久| 狠狠香蕉| 最新av在线| 18禁av在线| 三级成人AV| 亚洲欧美色图| 久操免费在线视频| 超碰在线天天| 丁香五月婷婷综合网| 久久久三级| 欧一美一色一伦一A片| 在线免费观看av网站| 土耳其电影《爱与罚》| 国产在线拍揄自揄拍无码网站新闻 | 黄色小视频免费| 青青在线| AV在线免费观看网站| 99国产精品久久久久久久成人| 无码精品一区二区三区在线观看 | 91成人免费电影片| 91天天干| 亚洲国产成人91PORN| 黄色视频在线观看地址| 久久成人综合网| 亚洲一二三四| 精品少妇一区| 免费黄视频在线观看| 无套免费视频欧美| 成人精品在线视频| 无码一区二区在线观看| www.re99| www.色在线观看| 夜夜躁狠狠躁日日躁av| 国产精品乱子伦视频一区二区 | 亚洲福利视频网| 成人先锋| 黄色不卡视频| 国精品无码人妻一区二区三区免费| 欧美一级A| 一级片av| 人操人碰| 欧美成人精品A片免费一区99| 亚洲AV成人片无码网站| 456亚洲影院| 99re在线观看观看这里只有精品| 日本特黄一级片| 丁香五月综合| 果冻传媒一区二区三区| 水蜜桃视频在线| 日本成人一区二区三区| 黄色免费在线观看网站| 无码视频网站| 欧美成人三级在线观看| 理论片无码| 黄色视频大全在线观看| 周晓琳AV| 操人妻视频| 久久99久久99久久99人受| 国产久久在线观看| 久久久精品一区| 天天射夜夜骑| 人妻在线观看| 久热网| 视频二区| 国产精品久久久久久久久久久久久久久久 | 北条麻妃AV在线播放| 五月天色婷婷丁香| 狠狠爱av| 人妖黄片| 啊啊啊国产| 成人四区| 人人cao| 九九re精品视频在线观看| 九九久久国产精品| 99热8| 免费黄色成人视频| 男人的天堂社区| 久久久波多野结衣| 在线中文字幕第一页| 亚洲国产一区二区在线| www.啪啪| 黄片福利| Chinese搡老女人| 一线毛片| 视频一区中文字幕| 亚洲欧美日韩在线| 最新精品视频| 超碰在线观看97| 天天肏屄| 欧美高清视频| 无码专区中文字幕| 在线观看黄色网页| 成年人免费看视频| 欧美日本激情| 日韩国产在线| 国产性爱在线观看| 国产欧美一区二区三区视频在线观看 | 中文字幕久久人妻无码精品蜜桃| 亚州天堂网| 宅男噜噜噜66一区二区| 国产激情综合在线| 亚洲北条麻妃一级A片| 亚洲AV白浆| 大香伊人| 男人天堂V| 丝袜人妻| 国产免费一级片| 嫩小槡BBBB槡BBBB槡免费-百度 | 日韩一级内射| 久久黄片视频| 老司机精品视频在线观看| 亚洲AV无码一区二区三竹菊| 日韩va| 无码人妻av黄色一区二区三区| 欧美操逼的| 亚洲一区三区| 日韩欧美在中文| 天天草av| 成人黃色A片免费看| 成人黄网站免费观看| 欧美在线成人网| 91一区二区三区| 欧美一区二区三区在线观看| 精品国产乱码久久久久久郑州公司| 亚洲456| 欧美成人毛片一级A片| 成人免费精品视频| 97人妻精品一区二区三区免 | 日本久久视频| 中文久久久| av福利在线| www99精品| 欧美日韩在线视频免费播放| 思思热这里只有精品| 国产人国产视频成人免费观看…| 尻屄视频| 日韩AV免费在线观看| 日逼一级片| 亚洲卡一卡二| 亚洲成人日韩| 99久久国| 国产精品1区2区| 97精品在线观看| 围内精品久久久久久久久久‘变脸 | 你懂的在线视频| 久久精品人妻| 毛片国产| 黄色片在线免费看| 午夜一区| 色播婷婷五月天| 豆花视频logo进入官网| 成人精品久久| 大肉大捧一出免费观看| 欧美日韩v| 日本少妇做爱| 国产操b视频| 国产操逼图| 亚洲成人777| 黄色网页在线| 超碰在线人妻| 日韩欧美亚洲一区二区三区| 欧美日韩在线观看中文字幕| 国产视频导航| 久久er热| 国产成人精品一区二区三区在线| jjzz亚洲| 人人色在线| 色综合久久天天综合网| 男人天堂网av| 无码不卡在线播放| 欧美熟妇另类久久久久久不卡| 成人性生交片无码免费看人| 五月天丁香婷婷视频| 免费啪啪视频| 激情网婷婷| 久色婷婷在线| 国产18| 一级A片60分钟免费看| 操少妇| jjzz亚洲| 九九成人电影| 大香蕉操| 亚洲综合视频在线观看| 日韩另类视频| 国产欧美日韩在线播放| 2016超碰| 亚洲一区高清| 91视频网站免费观看| 一级A片黄色| AV在线不卡中文| 日韩一级视频| 91一区二区| 天天操天天操| 性感欧美美女| 法国《少女日记》电影| 伊人青草视频9| 肏屄视频免费观看| 91久久国产综合久| 成人毛片在线| 在线视频亚洲| 伊人无码视频| 国产主播中文字幕| www.中文无码| 成人爽爽视频| av在线中文| 中文字幕在线观看日本| 激情二区| 97色色视频| 国产美女被爽到高潮免费A片软件| 天天看天天色| 亚洲色图自拍| 一插菊花综合视频| 日本男人天堂| AV网站在线免费观看| 亚洲性天堂| 日韩AV中文字幕在线| 黄色二区| 91麻豆精品传媒国产| 欧美一级内射| 爱搞逼综合网| 欧美成人在线观看| 日韩精品一区二区三区四区| 国产人成视频免费观看| 天天综合网久久| 国产欧美综合在线观看| 日韩A片免费观看| 丰满人妻一区二区三区四区不卡 | 欧美日韩男女淫乱一区二区| 黄色视频在线免费观| 嫖中国站街老熟女HD| 激情开心站| 91亚洲国产成人精品一区二区三 | 亚洲无码成人视频| 亚洲精品成人无码毛片| 麻豆啪啪| 国产成人无码A片V99| 韩剧《邻居的妻子》电视剧| 熟女人妻一区二区三区| 人人人人人妻| 青娱乐一级无码| 黄av在线| 麻豆激情视频| 欧美老熟女18| 国产一级a一级a免费视频| 西西444WWW大胆无视频软件亮点 | 波多野结衣中文字幕久久| 天天做天天爱夜夜爽| 美女国产精品| www狠狠| 骚妇大战黑人15P| 99免费观看视频| 99免费在线观看| 人人干人人爱| www.青青草视频| 97精品人妻麻豆一区二区| 人人操91| 国产成人AV一区二区三区在线观看| 在线观看内射视频| 黄色特级毛片| 正在播放国产精品| 爱爱动态图| 德美日三级片在线观看| 午夜偷拍网站| 91精品国产综合久久久久久久| 51妺嘿嘿在线电影免费观看| 日韩人妻丝袜中文字幕| 青青草在线播放| 日韩视频免费| 亚洲AV无码乱码| 欧美欧美欧美| www.日本黄色| 日韩一区二| 成人在线免费电影| 91成人电影在线| 四川少妇BBB| 欧美怡春院| 亚洲午夜福利一区二区三区| 懂色AV无码中字幕一区| 特一级黄色视频| 天天日天天拍| www.91麻豆| 国产成人秘一区二区三区东京热| 国产A级成人婬片1976| 草逼网视频| 蜜桃av无码一区三区| 国产麻豆精品成人毛片| 日本不卡中文字幕| 黑人一级片| 91羞射短视频在线观看| 成人动漫免费观看| 亚洲色操| 五月在线视频| 免费看一级一级人妻片| 影音先锋成人| 国产一区二区三区视频在线| 蜜臀av网| 玖玖资源网站| 在线激情| 91香蕉视频| 精品视频久久久久久| 精品在线播放视频| 少妇推油呻吟白浆啪啪成人片| 亚洲精品国产成人综合久久久久久久久 | 欧美91| 少妇搡BBBB搡BBB搡打电话| 男女性爱视频网站| 91香蕉视频免费在线观看| 大鸡吧视频在线观看| 少妇大战黑人46厘米| 亚洲日操| 91大吊| 91热久久| 4438成人网| 黄色片免费看| 精品女同一区二区三区四区外站在线 | 97免费在线观看视频| 无码在线高清| 黑人无码AV黑人天堂无码AV| 黄色片免费| 婷婷激情五月天丁香| 国产精品V日韩精品V在线观看| 激情内射网站| 老熟女露脸25分钟91秒| 国产亲子乱婬一级A片| 国产精品偷拍视频| 青青草原成人在线视频| 91成人精品一区二区| 91黄色视频在线观看| av福利在线观看| 天天日av| 成人在线A片| 蜜桃久久99精品久久久酒店| 99成人乱码一区二区三区在线| 青娱乐在线精品| 国产免费av片| 久久久久久成人电影| 影音先锋av在线资源站| 中文字幕国产综合| 97人人人人人人| 99久久久久久久| 巨乳国产一区| 婷婷V亚洲V丁香月天V日韩V| www.久久久| 四虎一区| 一道本一区二区三区免费视频| 久一在线| 欧美色噜噜| 亚洲无码在线电影| 五月六月丁香激情视频| 亚洲色图欧美在线| 亚洲无码观看视频| 久热在线视频| 91操视频| 爱爱午夜福利| 怡春院在线| 狼人色影院| 翔田千里无码免费播放| 天天看天天摸| 91久色| 狼友视频免费| 中文字幕乱码中文乱码91| 亚洲性爱无码| 最近中文字幕2022在线观看A| 国产91在线看| 午夜性爱AV| 一级AV片| 五月天婷婷在线观看视频| 黄网在线播放| 无码人妻一区二区三区线花季传件| 天堂资源地址在线| 蜜臀久久精品久久久久| 91在线无码精品秘国产| 成人免费黄片| AV-ThePorn| 国产97在线观看| 亚洲日韩久久| 51亚洲精品| 无码AV动漫| 日本无码视频在线观看| 伊人色色综合| 美日韩无码视频| 最近2021中文字幕免费| 天天日毛片| 亚洲日韩黄色| 亚洲精品国产精品国自产曰本| 乳揉みま痴汉电车羽月希免费观看| 黄色视频在线观看| 美日韩免费视频| 免费毛片视频| 色噜噜狠狠一区二区三区| 欧美口爆视频| 波多野结衣不卡| 日本三级片无码| 久久综合伊人777777| 91操操| 无码人妻丰满熟妇区17水蜜桃| 国产黄色片视频| 黄色一级大片| 精品国产精品三级精品AV网址| 91视频www| 五月av| 亚洲黄色在线免费观看| 欧洲成人在线视频| 日韩无码中文字幕| 成年人黄色在线观看| 成人做爰69片免费观看| 久久久久久国际四虎免费精品视频 | 欧美天堂在线观看| 青榴视频免费观看| 亚洲在线观看中文字幕| 色色免费视频| 国产6区| 91无码人妻一区二区成人aⅴ| 三级网站免费| 一本色道久久综合狠狠躁| 中文字幕操逼| AV在线天堂| 青青青国产在线| 国产91探花秘入口| 欧美国产日韩欧美亚洲国产 | 亚洲成人精品AV| 国产精品无码白浆高潮| 日韩免费在线观看一区入口 | 日韩AV中文字幕在线播放| 亚洲精品无码久久| 亚洲美女网站在线观看| 男人的天堂在线播放| 91九九| 日韩不卡中文字幕| 亚洲无码一级片| 日韩av中文在线| 中国婬乱a| 国产高清无码在线| 久久视频这里有精品| 国产不卡一区| 三级一区二区| 中文字幕乱码中文乱码91| 69AV在线观看|